Crontab定时任务详解及实践项目中的一个demo
技术  /  管理员 发布于 4年前   1163
crontab 定时任务
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
crontab的文件格式
分 时 日 月 星期 要运行的命令
第1列分钟0~59
第2列小时0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令
例子:
* * * * * echo "hello" #每1分钟执行hello
3,15 * * * * myCommand #每小时第三分钟和第十五分钟执行
3,15 8-11 * * * myCommand# 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand #每隔两天的上午8点到11点的第3和第15分钟执行
30 21 * * * /etc/init.d/smb restart #每晚的21:30重启smb
0 23 * * 6 /etc/init.d/smb restart #每星期六的晚上11 : 00 pm重启smb
添加计划任务
crontab -e
重启计划任务
service crond restart
查看计划任务日志文件
tail /var/log/cron
实践项目中的案例:
每天凌晨1点备份mysql数据库,存在/opt/mysqlbak/文件夹里面,文件名以xxx拼接日期,并且自动删除30天以前的备份文件。
1.在/opt/里面创建mysqlbak文件夹
2.在/opt/里面穿件计划任务脚本文件,blogbak.sh
[root@iz8vbcrus31oj2axurgpjyz ~]# cd /opt/
[root@iz8vbcrus31oj2axurgpjyz opt]# ll
total 16
-rwxrwxrwx 1 root root 290 May 6 17:33 blogbak.sh
drwxrwxrwx 2 root root 12288 Sep 7 01:00 mysqlbak
3.vi blogbak.sh
#!/bin/sh
user="root"
passwd="Qxxxx"
date=`date +%F`
#备份表
echo "1111" > /opt/mysqlbak/test$date.txt
/usr/local/mysql/bin/mysqldump -u$user -p$passwd blog > /opt/mysqlbak/blogbak$date.sql
#删除旧表30天前的
#find /opt/mysqlbak -mtime +30 -name "*.*" -exec rm -Rf {} \;
4.添加计划任务
crontab -e
* 1 * * * /opt/blogbak.sh
想要立马生效 直接重启计划任务
看看效果我的这个脚本已跑了个把月了
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号