Linux-07-定时任务

在Linux中定时任务是依靠crond程序来执行的,跟ssh,network,rsyslog,sysstat一样都是默认开机后启动的。默认情况下crond是每隔一分钟检查一次是否有需要执行的任务。如果有特殊需要,比如每秒执行一次就要写守护程序了。

查看定时任务的目录

[test@CentOS6 ~]$ ll /etc/| grep cron
-rw-------.  1 root root     541 Aug 24  2016 anacrontab
drwxr-xr-x.  2 root root    4096 Aug  7 01:27 cron.d
drwxr-xr-x.  2 root root    4096 Aug  7 01:28 cron.daily
-rw-------.  1 root root       0 Aug 24  2016 cron.deny
drwxr-xr-x.  2 root root    4096 Aug  7 01:27 cron.hourly
drwxr-xr-x.  2 root root    4096 Aug  7 01:28 cron.monthly
-rw-r--r--.  1 root root     457 Sep 27  2011 crontab
drwxr-xr-x.  2 root root    4096 Sep 27  2011 cron.weekly

查看定时任务

[root@CentOS6 ~]# crontab -l
#time sync by test at 2018-8-9
*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
#del file by test at 2018-8-10
00 00 * * 6 /bin/sh /server/scripts/del.sh > dev/null 2>&1
[root@CentOS6 ~]# 

其中前面5列分别代表分钟、小时、日、月、周。

定时任务文件:

[root@CentOS6 ~]# ll /etc/cron.deny 
-rw-------. 1 root root 0 Aug 24  2016 /etc/cron.deny
[root@CentOS6 ~]# ll /var/spool/cron/
total 4
-rw------- 1 root root 182 Aug 10 19:10 root

通过crontab -e修改的内容实际上是/var/spool/root文件

[root@CentOS6 ~]# cat /var/spool/cron/root 
#time sync by test at 2018-8-9
*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
#del file by test at 2018-8-10
00 00 * * 6 /bin/sh /server/scripts/del.sh > dev/null 2>&1

一般来说,在定时任务配置文件中,用户的定时任务分为6段、系统的定时任务分为7段

[root@CentOS6 ~]# more /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

在时间(也就是前五个字段中)里面,*表示每,-表示范围,,表示分割时段,/n n代表数字,每隔n单位时间的意思

定时任务crontab锁以来的服务

[test@CentOS6 ~]$ chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

查看服务进程是否已经启动

[test@CentOS6 ~]$ ps -ef | grep cron
root      1160     1  0 09:54 ?        00:00:00 crond
test      1220  1191  0 09:59 pts/0    00:00:00 grep cron

如果没有启动可以重新启动该服务

[test@CentOS6 ~]$ sudo su - 
[root@CentOS6 ~]# /etc/init.d/crond restart
Stopping crond: [  OK  ]
Starting crond: [  OK  ]

写一个自动记录时间的例子

[root@CentOS6 logs]# crontab -l
#time sync by test at 2018-8-9
*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
#del file by test at 2018-8-10
00 00 * * 6 /bin/sh /server/scripts/del.sh > dev/null 2>&1
#write logs to somefile
* * * * * echo `date +\%F\ \%T` >> /root/logs/test.log

也可以吧命令写到脚本里面,定时任务调用脚本执行

[root@CentOS6 logs]# more log.sh 
echo "`date +%F\ %T` test" >>/root/logs/test.log
[root@CentOS6 logs]# crontab -l
#time sync by test at 2018-8-9
*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
#del file by test at 2018-8-10
00 00 * * 6 /bin/sh /server/scripts/del.sh > dev/null 2>&1
#write logs to somefile
* * * * * echo `date +\%F\ \%T` >> /root/logs/test.log
#test sh log
* * * * * /bin/sh /root/logs/log.sh >/dev/null 2>&1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值