linux的定时任务详解
cron定时任务常用命令
crontab
# -l: 查看定时任务列表
# -e: 编辑定时任务列表
# -u: 指定使用的用户执行任务
cron定时任务的相关配置文件
/etc/cron.deny: 该文件中所列用户不允许使用crontab命令,不常用
/etc/cron.allow: 该文件中所列用户允许使用crontab命令,优先于/etc/cron.deny
/var/spool/vron: 所有用户的cron配置文件都存放在此目录,以用户名字命名的文件,文件里就是定时任务的指令,以root用户为例,执行crontal -e 就等同于执行vim /var/spool/vron/root
/var/log/cron: 定时任务的日志地址
cron表达式的语法规则
* * * * *
分 时 日 月 周
注意
- 定时任务后面执行的命令不能有百分号,如果非要有就要转义 \
- 定时任务尽量用脚本(命令放到文件里)。脚本结尾加.sh
- /bin/sh 脚本全路径
- 执行脚本加 &> /dev/null或者 >/dev/null 2>&1
- 有软链接的文件要写源文件
实践
# 让服务器时间每5分钟和互联网时间做一次同步
crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
# 每天晚上00点10分,执行脚本
crontab -l
10 00 * * * /bin/bash /server/scripts/tar.sh &> /dev/null