Linux---定时任务
1.定时任务的作用
定时任务作用:
1.定时备份(重要的系统文件 系统数据 业务文件 业务数据等)
什么时间备份(业务低谷期)
视频: 8-12点
小说: 12点-凌晨1点
公司官网: 上午10点下午6点
购物: 凌晨3-5点
游戏: 早上8-9点左右
为什么低谷期做备份?
因为备份需要tar打包压缩,打包压缩占用CPU负载
2.定时数据统计
3.定时辅助进程运行
4.其他作用
2.定时任务的配置文件
分为两个配置文件:
第一个配置文件: 系统配置文件
/etc/crontab
第二个配置文件: 用户配置文件
crontab -e 编辑---->实际写入到/var/spool/cron/root
crontab -l 列出当前所有的定时任务
日志文件:
/var/log/cron
3.定时任务的格式
语法格式: 分时日月周 用户名(root) 可执行命令 * * * * * user-name command to be executed 第一颗星: 分钟 0 - 59 0表示整点 第二颗星: 小时 0 - 23 0表示凌晨12点 第三颗星: 日 1 - 31 第四颗星: 月 1 - 12 第五颗星: 周 0 - 6 0和7表示 星期天
4.定时任务小案例
案例1: 每天的上午8点30分,来学校上车(go to school) 30 08 * * * root echo go to school 案例2: 笔试题 每天晚上12点准时,回家自己开车(go to bed) 00 00 * * * root echo go to bed 案例3: 每分钟输出自己的姓名 * * * * * root echo lll 案例4: 每个小时的第5分钟执行echo hehe 05 * * * * root echo hehe 案例5: 早上7点到上午11点执行命令 00 7-11 * * * root echo .. 案例5: 早上7点 9点 下午13点-15点执行 00 7,9,13-15 * * * root echo .. 案例6:间隔5分钟时间同步 */5 * * * * root ntpdate ntp1.aliyun.com 案例7:凌晨12点查找7天前的文件删除,或者备份 00 00 * * * root find /data -type f -mtime +7|xargs tar zcvf /opt/etc.tar.gz 00 01 * * * root find /data -type f -mtime +7|xargs rm 案例8: 校验MD5值保证文件被篡改时第一时间发现并恢复业务 find /data -type f |xargs md5sum >/opt/md5.log */5 * * * * root md5sum -c /opt/md5.log >/opt/result.txt 案例9:每分钟将自己的名字追加写入家目录中的test.txt文件中 * * * * * root echo lzh >> /root/test.txt 案例10:每间隔5分钟执行一次时间同步 */5 * * * * root ntpdate ntp1.aliyun.com 案例11:每天凌晨5点 将/etc/hosts /etc/passwd 打包到/opt/下以IP地址和当天时间命名 [root@centos ~]#tar zcvf /opt/`hostname -I|awk '{print $1}'`_`date +%F`.tar.gz /etc/hosts /etc/passwd * * * * * root tar zcvf /opt/`hostname -I|awk '{print $1}'`_`date +\%F`.tar.gz /etc/hosts /etc/passwd 案例12:每天凌晨12点 查找/data目录下7天前的文件并删除(7天前的文件通过修改时间来创建) 00 00 * * * root find /data/ -type f -mtime +7 -name "*.log"|xargs rm &>/dev/nul
5.使用脚本进行定时任务案例
1.给定时任务添加注释 2.两条命令以上使用脚本的方式运行 案例: 创建IP地址+时间命名的目录 将/etc/hosts /etc/passwd 打包放在上面的目录中 查找目录中大于7天前的文件删除 [root@centos ~]#mkdir /server/scripts -p 创建一个专门放脚本的地方 [root@centos ~]#ifconfig eth0|awk 'NR==2{print $2}' 10.0.0.200 [root@centos ~]#IP=`ifconfig eth0|awk 'NR==2{print $2}'` [root@centos ~]#echo $IP 10.0.0.200 [root@centos ~]#TIME=`date +%F` [root@centos ~]#echo $TIME 2023-03-15 [root@centos ~]#echo $IP_$TIME 2023-03-15 [root@centos ~]#echo ${IP}_$TIME 10.0.0.200_2023-03-15 [root@centos ~]#mkdir ${IP}_$TIME [root@centos ~]#ll total 8 drwxr-xr-x. 2 root root 6 Mar 15 09:23 10.0.0.200_2023-03-15 最终结果: [root@centos /server/scripts]#cat backup.sh #创建/opt下IP地址+时间命名的目录 IP=`ifconfig eth0|awk 'NR==2{print $2}'` TIME=`date +%F` mkdir -p /opt/${IP}_$TIME #将/etc/hosts /etc/passwd 打包放在上面的目录中 tar zcf /opt/${IP}_$TIME/${TIME}.tar.gz /etc/hosts /etc/passwd &>/dev/null #查找目录中大于7天前的文件删除 find /opt/${IP}_$TIME/ -type f -mtime +7|xargs rm &>/dev/null 注意: 写入到定时任务: 1.先按照每分钟进行测试 然后修改回固定的时间 # 00 00 * * * root sh /server/scripts/backup.sh 3.在定时任务不识别% 需要加转义\% 或者将命令写入脚本 4.执行脚本尽量前面加上sh或者bash /server/scripts/backup.sh 需要给脚本执行权限 sh /server/scripts/backup.sh 不需要脚本执行权限 5.执行脚本的结果,定时任务的结果定向到空或者文件中 在执行每条定时任务后 系统会自动给用户发送邮件信息 /var/spool/mail/root
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?