linux下crontab执行定时任务
linux下crontab执行定时任务
我们会有一些定时脚本需要执行的需求,linux为我们提供了crontab管理和执行定时任务。
crontab安装启动重启关闭
service crond start 开启服务
service crond stop 关闭服务
service crond restart 重启服务
service crond reload 重新载入配置
service crond status查询crond的在状态,如果有显示runing则表示正常运行中。
crontab的3大命令查看编辑删除
crontab -l 查看配置的定时任务
crontab -e 编辑定时任务
crontab -r 删除所有定时任务危险
cron定时任务配置
*/5 * * * * command
cron格式为 * * * * *
从左到右依次是
说明 | 分钟 | 小时 | 每个月的第几天 | 每年的第几个月 | 每周的第几天 | 解释 |
---|---|---|---|---|---|---|
取值范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~6(表示周几,0表示周天) | |
示例 | 5 | 每小时第5分钟执行一次命令 | ||||
示例 | 0 | 9 | 每天早上9点00分执行一次命令 | |||
示例 | 0 | 9 | 5 | 每月5号早上9:00执行一次命令 | ||
示例 | 0 | 9 | 5 | 6 | 每年6月5号早上9:00执行一次命令 | |
示例 | 0, 10, 20 | 10, 11, 14 | 每天10点,11点,14点的0分,10分,20分执行一次命令 | |||
示例 | 0 | 9 | * | 5 | 每周五早上9:00执行一次命令 |
常用目录执行日志
tail -n 10 /var/log/cron查询最近10条crontab的日志
禁止crontab -r 命令
在 /etc/bashrc 文件末尾添加 alias crontab =’/usr/bin/cron.sh’ 或者在当前root用户 ~/.bashrc文件末尾添加 alias crontab=’/usr/bin/cron.sh’
cron.sh文件文件内容
#!/bin/bash
source ~/.bashrc
etime=`date -d "0 days ago" +%Y%m%d_%H%M%S`
if [ "$1" = "-r" ] ; then
echo "My God! Dangerous..."
echo "Exit..."
exit 2
fi
if [ "$1" = "-l" ] ; then
/usr/bin/crontab -l
echo 'run crontab -l'
exit 0
fi
if [ "$1" = "-e" ] ; then
mkdir -p ~/cronbak
/usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.a
/usr/bin/crontab -e
/usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.b
fi
#linux
cron.sh文件的作用
1.禁止crontab -r
2.每次编辑都备份crontab任务列表到~/cronbak目录下
如果cron.sh不生效,
- 重新连接到服务器
- 执行 source ~/.bashrc
参考
https://blog.csdn.net/yeguxin/article/details/79543514
https://blog.csdn.net/weixin\_30781107/article/details/99079096
还没有评论,来说两句吧...