Linux系统定时任务怎么配置

65次阅读
没有评论

共计 2564 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍“Linux 系统定时任务怎么配置”,在日常操作中,相信很多人在 Linux 系统定时任务怎么配置问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux 系统定时任务怎么配置”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

一:定义

crond 是 Linux 系统中用来定期执行命令或指定程序任务的一种服务或软件

1、linux 系统自身定期执行的任务(轮询系统日志、备份数据等)

2、用户执行的任务(定时更新同步时间、网站数据备份等)

二:命令语法

定时任务的命令是 crontab, 其守护进程是 crond(服务运行的程序)

crontab [-u users] 文件

crontab [-u users] [-e | -l | -r]

-e 编辑定时任务

-l   查看定时任务

-r 清除定时任务

/etc/cron.deny(allow) 控制使用 crontab 的权限用户

/etc/spool/cron/ 所有用户 crontab 配置文件的存放地

三:系统定时任务格式

[root@Centos ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .—————- minute (0 – 59)

# |  .————- hour (0 – 23)

# |  |  .———- day of month (1 – 31)

# |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …

# |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

/etc/crontab 分七段,空格分隔,用户 6 段

时间格式:分时日月周—— *  *  *  *  * user-name command

特殊符号的意义

* 任意(每‘时间’)

-(减号)分隔符,表示一个时间段“到”如 17-19 表时 17 到 19 的意思

,(逗号)分隔时段,不连续的两个时间

/n(n 代表数字)每隔 N 单位的时间,/5 每 5XX

四:服务状态查看

chkconfig –list crond                                   查看服务是否开机启动

[root@Centos ~]# chkconfig –list crond

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@Centos ~]#ps -ef|grep crond               查看服务是否启动

[root@Centos ~]# ps -ef|grep crond

root       1746      1  0 09:17 ?        00:00:01 crond

root       2274   2052  0 10:14 pts/0    00:00:00 grep crond

/etc/init.d/crond  start(restart)                       启动与重启服务

五:定时任务的书写规范(生产环境)

1、定时任务书写必必须加上一定的注释信息

2、如果是执行 shell 脚本任务前要加上 /bin/sh

3、在指定用户下执行相关任务,批量脚本(echo 脚本规则 /var/spool/cron/root)

4、定时任务(脚本任务)的结尾加上 dev/null 2 1 将一些不必要的输出信息 (错误或标准输出) 丢到空设备中,也就是默认不输出不必要的信息

重定向

或 1 输出重定向(正确的结果)或 1

2 或 2 错误重定向(错误的结果)

或 0 1,或 0 输入重定向

5、生产任务程序不要随意输出

tar zcf etc.tar.gz /etc tar.etc.log 2 1

6、命令或程序最好写进脚本

命令程序要使用绝对路径,然且把脚本写到定时任务中,用到系统环境变量时要重新定义

7、定时任务执行的脚本要规范路径(/server/scripts 一般默认路径)

六:配置定时任务操作规范

1、事先在命令行中操作,命令执行成功后复制命令进脚本中,减少书写错误

2、然后测试脚本执行,脚本测试成功后,复制脚本的规范路径到定时任务中

3、实际生产环境中,事先要在测试环境中测试,然后应用到实际生产环境中去

七:实战例子

1、每分钟将 name 追加到 /server/log/name.log 这个文件中

#####print name to log everyday 2016-08-08

* * * * * echo name /server/log/name.log

[root@Centos log]# date

Wed Aug 24 10:57:17 CST 2016

[root@Centos log]# cat /server/log/name.log

name

name

[root@Centos log]# date

Wed Aug 24 10:58:18 CST 2016

[root@Centos log]# cat /server/log/name.log

name

name

name

测试此定时任务已成功执行

2、每周六、周日,9:00,14:00 执行 /server/scrpts/name.sh 这个脚本,脚本的内容是打印当天的日期随意追加到一个文件里

按照书写规范一步步来写这个定时任务

脚本内容

date %F name.txt

编辑脚本

vi name.sh

date %F name.txt

脚本全路径执行测试

/bin/sh /server/scrpts/name.sh

书写定时任务

0 09,14 * * 6,7 /bin/sh /server/scrpts/name.sh

编辑定时任务文件

crontab -e

###one shell by yuw001 2016-08-10

0 09,14 * * 6,7 /bin/sh /server/scrpts/name.sh dev/null 2 1

到此,关于“Linux 系统定时任务怎么配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2564字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)