一.如何创建crontab定时任务:
通常情况下,只有root用户和具有sudo权限的用户才能执行crontab此操作。
1.添加/编辑crontab文件:
如何 添加/编辑 Crontab:
crontab -e #这将打开文本编辑器以编辑当前用户的cron作业。
#默认情况下,系统会编辑 当前登录用户的crontab命令集合。需要编辑其他用户的命令集合,需要使用到如下的命令: crontab -u username -e
2.添加或修改你的定时任务:
# 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 to Saturday; # | | | | | 7 is also Sunday on some systems) # | | | | | # * * * * * user-name command to be executed
按照上面的格式添加你的定时任务。
3.保存并退出编辑器:
4.重启crond服务以使更改生效:
systemctl restart crond.service
注意:
linux的crontab中的执行文件,必须要有可执行权限,才能被crontab定时执行。如果没有可执行权限,及时配置到了crontab中 也是无法被定时触发执行的。
linux中如何添加文件的执行权限:
要在Linux上增加文件的执行权限,可以使用以下方法: 1. 使用chmod命令:chmod命令用于改变文件的权限。例如,要为文件添加执行权限,可以使用以下命令: chmod +x filename 这将为文件添加执行权限。 2.使用文件权限数字表示法:文件权限可以用数字表示,每个权限都有一个对应的数字值。执行权限的数字值为1。要为文件添加执行权限,可以使用以下命令: chmod 755 filename 这将为文件添加所有者可读、写、执行权限,组用户和其他用户只有可读和执行权限。 ps:请注意,要使用chmod命令,您需要有足够的权限。如果您不是文件的所有者或root用户,您可能需要使用sudo命令来提升权限。
r:读权限,w:写权限, x:执行权限
这样你添加的cron作业就会按照预定的时间执行了。如果你只是想查看当前用户的crontab而不编辑,可以使用crontab -l
命令。
二 查看Crontab命令集合
查看当前系统登录用户的Crontab命令集合: crontab -l 查看其他用户的Crontab命令集合 :crontab -u ussername -l
情况一:正常情况(系统有service命令) 重启服务命令:[root@centos6 /]# service crond restart 启动服务命令:[root@centos6 /]# service crond start 停止服务命令:[root@centos6 /]# service crond stop 情况二:当linux发行的版本没有service这个命令时候,用如下命令进行停止启动: 停止服务:[root@centos6 /]# /etc/init.d/cron空格stop 启动服务:[root@centos6 /]# /etc/init.d/cron空格start
下面是利用这个方式恢复cron的一个小例子。(看看就行~) 首先:检查当前的cron # crontab -l MAIL=rahul 0 2 * * * /script/backup.sh 然后:备份cron到文件中 # crontab -l > cron-backup.txt # cat cron-backup.txt MAIL=rahul 0 2 * * * /script/backup.sh 接着:移除当前的cron # crontab -r # crontab -l no crontab for root 恢复:从text file中恢复 # crontab cron-backup.txt # crontab -l MAIL=rahul 0 2 * * * /script/backup.sh
3.crontab配置规则
20个超实用的Crontab使用实例 1.每天 02:00 执行任务 0 2 * * * /bin/sh backup.sh 2.每天 5:00和17:00执行任务 0 5,17 * * * /scripts/script.sh 3.每分钟执行一次任务 通常情况下,我们并没有每分钟都需要执行的脚本(默默的想到了12306--) * * * * * /scripts/script.sh 4.每周日 17:00 执行任务 0 17 * * sun /scripts/script.sh 5.每 10min 执行一次任务 */10 * * * * /scripts/monitor.sh 6.在特定的某几个月执行任务 * * * jan,may,aug * /script/script.sh 7.在特定的某几天执行任务 0 17 * * sun,fri /script/scripy.sh 在每周五、周日的17点执行任务 8.在某个月的第一个周日执行任务 0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh 9.每四个小时执行一个任务 0 */4 * * * /scripts/script.sh 10.每周一、周日执行任务 0 4,17 * * sun,mon /scripts/script.sh 11.每个30秒执行一次任务 我们没有办法直接通过上诉类似的例子去执行,因为最小的是1min。但是我们可以通过如下的方法。 * * * * * /scripts/script.sh * * * * * sleep 30; /scripts/script.sh 12.多个任务在一条命令中配置 * * * * * /scripts/script.sh; /scripts/scrit2.sh 13.每年执行一次任务 @yearly /scripts/script.sh @yearly 类似于“0 0 1 1 *”。它会在每年的第一分钟内执行,通常我们可以用这个发送新年的问候。 14.系统重启时执行 @reboot /scripts/script.sh 15.将 Cron 结果重定向的特定的账户 默认情况下,cron 只会将结果详情发送给 cron 被制定的用户。如果需要发送给其他用户,可以通过如下的方式: # crontab -l MAIL=bob 0 2 * * * /script/backup.sh 16.将所有的 cron 命令备份到文本文件当中 这是一个当我们丢失了cron命令后方便快速的一个恢复方式。
Crontab 配置规则
标签:权限,script,重启,crontab,cron,sh,linux,执行 From: https://www.cnblogs.com/pingguomang/p/18154687