crontab命令
crontab命令是用于管理定时任务的命令行工具。它提供了多种选项和参数,可以用来创建、编辑、查看和删除用户的定时任务。
常用命令
以下是一些常用的crontab命令:
crontab -e:编辑当前用户的定时任务列表。该命令会在默认编辑器中打开定时任务文件,你可以添加、修改和删除定时任务。
crontab -l:列出当前用户的定时任务列表。该命令会将定时任务以文本形式输出到终端。
crontab -r:删除当前用户的所有定时任务。该命令会删除当前用户的定时任务文件,并且无法恢复,请谨慎使用。
crontab -u -e:以指定用户的身份编辑定时任务列表。使用该命令可以编辑其他用户的定时任务文件,需要管理员权限或root用户身份。
crontab -u -l:列出指定用户的定时任务列表。该命令会将指定用户的定时任务以文本形式输出到终端
这些命令都是在终端中执行的,需要具备足够的权限(如管理员权限或root用户身份)。
实例
1)每1分钟执行一次
* * * * *
2)每小时的第3和第15分钟执行
3,15 * * * *
3)在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * *
4)每两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * *
5)每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1
6)每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
7)每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
8)每周六、周日的1:10重启smb
10 1 * * 6,7 /etc/init.d/smb restart
9)每天18:00至23:00,整点和整半点重启smb
0,30 18-23 * * * /etc/init.d/smb restart
10)每星期六的晚上11:00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
11)每一小时重启smb
* */1 ** * /etc/init.d/smb restart
12)晚上11点到早上7点之间,每一小时重启smb
* 23-7/1 * * *
13)每月的4号与每周一到周三的11点重启smb
0 11 4 * 1-3 /etc/init.d/smb restart
14)一月一号的4点重启smb
0 4 1 1 * /etc/init.d/smb restart
15)每小时的第1分钟执行/etc/cron.hourly目录内的脚本
1 * * * * /etc/cron.hourly
16)每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
#每晚的21:30 重启apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日的4 : 45重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每周六、周日的1 : 10重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#每天18 : 00至23 : 00之间每隔30分钟重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#每星期六的11 : 00 pm重启apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
#晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
#每一小时重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
#每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
#一月一号的4点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
#每半小时同步一下时间
*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org
#每两个小时重启一次apache
0 */2 * * * /sbin/service httpd restart
#每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start
#每天22:50关闭ssh服务
50 22 * * * /sbin/service sshd stop
#每月1号和15号检查/home 磁盘
0 0 1,15 * * fsck /home
#每小时的第一分执行 /home/bruce/backup这个文件
1 * * * * /home/bruce/backup
#每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;
#每月的1、11、21、31日是的6:30执行一次ls命令
30 6 */10 * * ls
定时任务不生效
我尝试了最简单的定时任务但是还是不生效,同时crontab也是开启的
重启服务也不行
尝试指定时间来运行定时器
依然没有任何反应
经过查阅是因为单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。 因此可以将输出结果放入文件中查看
生成了相应的文件并且有值,说明是成功执行了定时任务中的代码
查看信箱内容确实也是在里面的
同样.sh文件中我也放的是echo,估计也是将echo的内容放入了信箱当中,因此没有看到输出结果,我进行了修改之后就能够正常看到定时器执行任务了