Linux下crontab的使用

之前一直在Linux上使用crontab,今天换到了Ubuntu上踩了不少小坑,今天总结一下。

默认情况下Ubuntu里都装好了crontab,我们直接使用crontab来编辑命令:

结果出现了这个页面,当时第一反应就是这个怎么是这样。。。

这里一定要选对,之前一直选了2,超级难操作。后来发现可以使用 select-editor 重新进行选择

root@tl-virtual-machine:/var/spool/cron/crontabs# select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.tiny

还是选3vim.tiny,不要相信2那里写的easiest,是骗人的。 

编辑完后文件保存在了 /var/spool/cron/crontabs

我们使用crontab -e 定时一个任务

然后使用crontab -l 查看一下:

这里 *****代表每分钟执行一次,但是我保存帐号一直没有执行。因此我需要查看crontab的log,但是默认是不开启的。

于是需要 vim /etc/rsyslog.d/50-default.conf

把cron.*这句话前面的注释给拿掉

更新完后重新加载配置文件,重启服务

使用 cat /var/log/cron.log查看log,我们可以看到craontab是执行了我的配置的

我的脚本是重定向一个日期命名的文件,输出出来。但是为什么一直看不到文件出现呢。

后来问题找到了 原来是我这里没有指定路径

 指定了路径之后,一切正常。刚开始还以为环境变量的问题,固在第二行加了那个path。

下面总结一下常用的craontab的命令:

* * * * * command    每1分钟执行一次command

3,15 * * * * command    每小时的第3和第15分钟执行

3,15 8-11 * * * command    在上午8点到11点的第3和第15分钟执行

3,15 8-11 */2 * * command    每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 command    每个星期一的上午8点到11点的第3和第15分钟执行

30 21 * * * /etc/init.d/smb restart    每晚的21:30重启smb 

45 4 1,10,22 * * /etc/init.d/smb restart    每月1、10、22日的4 : 45重启smb

10 1 * * 6,0 /etc/init.d/smb restart    每周六、周日的1 : 10重启smb

0,30 18-23 * * * /etc/init.d/smb restart   每天18 : 00至23 : 00之间每隔30分钟重启smb 

0 23 * * 6 /etc/init.d/smb restart    每星期六的晚上11 : 00 pm重启smb

* */1 * * * /etc/init.d/smb restart    每一小时重启smb

* 23-7/1 * * * /etc/init.d/smb restart    晚上11点到早上7点之间,每隔一小时重启smb

0 11 4 * mon-wed /etc/init.d/smb restart    每月的4号与每周一到周三的11点重启smb

0 4 1 jan * /etc/init.d/smb restart    一月一号的4点重启smb

01 * * * * root run-parts /etc/cron.hourly    每小时执行/etc/cron.hourly目录内的脚本
说明:run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了每1分钟执行一次command
原文地址:https://www.cnblogs.com/by-dream/p/7472396.html