首页 技术教程

⏳ 浅蓝最后一次降雪:2021 年 08 月 12 日


引言

欸乃一声山水绿。回看天际下中流,岩上无心云相逐。 ——勿埋我心

  做网站的哥们都有一个共同的习惯,那就备份网站的数据。现在宝塔自带的备份也还可以,但是如果自己想要定时运行自定义脚本呢?那就需要用到Linux的时间管理大师了——crontab。
  Linux crontab是用来定期执行程序的命令。
  当安装完成操作系统之后,默认便会启动此任务调度命令。
  crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
  注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

启动cron

一般来说,是默认启动的。

 service cron start

查看日志

① linux

/var/log/cron.log这个文件就可以,可以用指令tail -f /var/log/cron.log观察

② unix

/var/spool/cron/tmp文件中,有croutXXX001234的tmp文件,tail 这些文件就可以看到正在执行的任务了。

③ mail任务

/var/spool/mail/root文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root即可查看最近的crontab执行情况。

④ Ubuntu

Ubuntu服务器/var/log下没有cron日志,在这里记录一下如何ubuntu server如何查看crontab日志。

修改rsyslog

#打开conf文件
sudo vim /etc/rsyslog.d/50-default.conf

#将cron前面的注释符去掉
cron.*              /var/log/cron.log 

重启rsyslog

sudo service rsyslog restart

sudo service cron restart

查看crontab日志

less /var/log/cron.log 

cron语法

Linux定时器工具-crontab 各参数详解及如何查看日志记录

crontab参数说明

-e : 执行文字编辑器来编辑crontab,内定的文字编辑器是VI

-r : 删除目前的crontab

-l : 列出目前的crontab(查看专用)

-i : 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除

注意:crontab是分用户的,以谁登录就会编辑到谁的crontab。

crontab特殊符号说明

"*"代表所有的取值范围内的数字。特别要注意哦!

"/"代表每的意思,如"*/5"表示每5个单位

"-"代表从某个数字到某个数字

","分散的数字

crontab使用示例:

30 21 * * * 表示每晚的21:30 

45 4 1,10,22 * * 表示每月1、10、22日的4 : 45

10 1 * * 6,0 表示每周六、周日的1 : 10

0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟

0 23 * * 6 表示每星期六的11 : 00 pm

\* */1 * * * 每一小时

\* 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时

\* 8,13 * * 1-5 从周一到周五的上午8点和下午1点

0 11 4 * mon-wed 每月的4号与每周一到周三的11点

0 4 1 jan * 一月一号的4点

结语

  别看写这么多,其实用起来很简单。这个实用的工具,会释放你的双手,给你带来自动化的舒适体验。欢迎有疑惑在勿埋我心评论区留言。




文章评论

目录