欢迎光临散文网 会员登陆 & 注册

高效利用crontab:Linux定时任务调度实践

2023-04-09 02:03 作者:小毛驴的烂笔头  | 我要投稿

删除 crontab 中的危险参数

为了避免误操作导致危险的 crontab 命令执行,可以通过创建一个名为 safecron 的脚本,并在其中移除 crontab 命令中的 -r 参数。以下是具体步骤:

  1. 创建 safecron 脚本并添加执行权限:

2. 在 /etc/bashrc 文件中添加 safecron 的别名:

工作中应用示例

1. 每10分钟检查 MySQL 主从同步:

*/10 * * * * /bin/bash /usr/local/bin/monitor/mysql_check_slave.sh > /dev/null 2>&1

2. 每天重启 nsca 服务

* * */1 * * /etc/init.d/nsca restart

3. 每天的20时50分删除指定目录下30天前的文件:

50 20 * * * find /var/log/rsyncxk015log/ -type f -ctime +30 -delete /dev/null 2>&1

4. 每月的1、11、21、31日的6点30分执行一次 ls 命令:

30 6 */10 * * ls

5. 周一到周五每天的16点0分执行一次自定义的 svn 日备份脚本:

0 16 * * 1-5    /bin/bash /usr/local/bin/shell/svn_hotcopy.sh day  > /dev/null 2>&1

6. 每月1号17点0分执行一次自定义的 svn 月备份脚本:

0 17 1 * *   /bin/bash /usr/local/bin/shell/svn_hotcopy.sh month > /dev/null 2>&1

7.  每隔两周,在周6的22点30分执行一次mysql完全备份,注意%在crontab下要转义

30 22 * * 6 [ $(/usr/bin/expr $(/bin/date +\%W) % 2) -eq 1 ] && /usr/local/bin/backup_shell/mysql_fullback.sh

8.  每个月,在最后一周的周6的22点30分执行一次mysql完全备份,注意%在crontab下要转义

30 22 * * 6 [ $(date -d "+7 days" +\%d) -gt  23 ] && /usr/local/bin/backup_shell/mysql_fullback.sh30 22 * * 6 [ $(date -d "+7 days" +\%d) -lt  14 ] && /usr/local/bin/cron_mysql_feeds_db.sh &> /tmp/cron_mysql_feeds_db.log

9.  每个月,在第一周的周6的22点30分执行一次mysql完全备份

30 22 * * 6 [ $(date -d "+7 days" +\%d) -lt  14 ] && /usr/local/bin/cron_mysql_feeds_db.sh &> /tmp/cron_mysql_feeds_db.log

10.  一个随机时间执行脚本 如签到 . 下面例子依赖atd 服务

0 7 * * * source /etc/profile && /bin/echo '/usr/local/bin/casperjs /root/51ca.js' | at now + $(shuf -i 2-59 -n 1) min


高效利用crontab:Linux定时任务调度实践的评论 (共 条)

分享到微博请遵守国家法律