Linux中的定时任务crond

【1】、什么是定时任务

1.什么是定时任务
闹钟/每天定时 7点半 8点
在固定的时间做什么事情。
2.定时任务作用
固定时间时间同步
数据备份(备份的服务器) 重要的数据保留3份 公司备份服务器 笔记本 移动硬盘/网盘一份
先打包然后再备份(代码文件 上百个 上千个) 占用磁盘io 降低传输速度 i input o output
日常工作需求
日志切割 防止日志太大
/var/log/nginx.log
mv /var/log/nginx /var/log/nginx-2024-11-18.log
监控取值+监控
定时执行脚本
辅助程序运行
.....

【2】、系统定时任务

五颗星: 星和星之间必须有空格
*  分	0 - 59   01或者写1表示1分钟  0表示整点
*  时    0 - 23   00或者写0 表示凌晨12点
*  日    1 - 31
*  月    1 - 12	 1-12月份,也可以使用英文表示月份  jan,feb,mar,apr ...
*  周	0 - 6    0或者7表示星期天 
特殊符号表示时间:
* 表示每的意思 如果是五颗星表示每分钟都要执行一次定时任务
/ 表示间隔的意思 */5 或 */05  表示间隔5分钟执行一次
- 表示区间  7-11 表示上午7点到上午的11点
, 表示间隔  7-11,13-15 上午7点到11点和下午的1点到3点执行


配置文件: /etc/crontab
语法结构: * * * * * root 可执行的命令;命令

案例1.每5分钟执行一个echo oldboy >> oldboy.txt   # 默认文件不写路径 则会在家目录生成/root/
*/5 * * * * root echo xu >> xu.txt 

案例2.每小时的第5分钟执行一次定时任务
05 * * * * root  cmd
# 注意05和*/5的区别
# 注意时间以整点来计算而不是当前时间 比如在当前03创建的定时任务 下次执行时间是05 1.05 1.10 1.15 1.20

案例3.每分钟执行一次定时任务
* * * * * root cmd

案例4. 上午的7-11点执行任务
* 7-11 * * *   # 表示7点的每分钟和8-11点的每分钟都会执行 7.01 7.02
00 7-11 * * *  # 表示7点 8点 9点 10点和11点执行一次

案例5.凌晨12点执行一个命令  笔试题
00 00 * * *  root cmd   # 表示凌晨12点

案例6.7-11,13-15 时间间隔使用
00 7-11,13-15 * * * root cmd

案例7.每分钟打包/etc/hosts /etc/passwd 名称为etc.tar.gz 放到/opt目录
* * * * * root tar zcvf /opt/etc.tar.gz /etc/hosts /etc/passwd

案例8.每分钟打包/etc/hosts /etc/passwd 名称为时间+etc.tar.gz放到/opt目录
# 注意定时任务不识别% 需要加\撬棍 或者将命令写入到脚本中,定时任务执行脚本
* * * * * root tar zcvf /opt/`date +\%F-\%H-\%M`etc.tar.gz /etc/hosts /etc/passwd
[root@kylin-xu opt]# ls
2024-11-18-12-37etc.tar.gz
[root@kylin-xu opt]# tar tf 2024-11-18-12-37etc.tar.gz 
etc/hosts
etc/passwd

# 写入脚本执行
[root@kylin-xu opt]# mkdir /server/scripts -p
[root@kylin-xu opt]# cd /server/scripts/
[root@kylin-xu scripts]# vim etc.sh
cd /etc/
tar zcvf /opt/`date +%F-%H-%M`etc.tar.gz hosts passwd
[root@kylin-xu scripts]# vim /etc/crontab
* * * * * root bash  /server/scripts/etc.sh


案例9.每间隔5分钟执行1次时间同步。
*/5 * * * * root ntpdate ntp2.aliyun.com

定时任务的日志文件 /var/log/cron 
# 如果定时任务执行不成功可以通过查看日志来发现问题

Ubuntu

cron日志文件
/var/log/syslog

【3】、用户定时任务

配置文件: 
/var/spool/cron/root  # root就是root用户做定时任务的配置文件  默认是没有的
配置用户定时任务有两种方法:
第一种方法: 有语法检查的功能
crontab -e 直接回车 就是编辑的/var/spool/cron/root  visudo -->/etc/sudoers

第二种方法: 直接vim编辑配置文件
vim /var/spool/cron/root

案例1.用户定时任务创建每分钟执行一个echo的动作
# 用户定时任务语法和系统定时任务语法 用户定时任务不需要加用户
[root@kylin-xu cron]# crontab -e
* * * * * echo test >> test.log  

查看用户定时任务方法1:
[root@kylin-xu cron]# cat /var/spool/cron/root 
* * * * * echo test >> test.log  
查看用户定时任务方法2:
[root@kylin-xu cron]# crontab -l -u root
* * * * * echo test >> test.log  

案例2.每5分钟执行一次时间同步
# 注意用户的定时任务默认识别的PATH变量只有/usr/bin和/bin路径 需要重新配置PATH变量
*/5 * * * *  ntpdate ntp2.aliyun.com
[root@kylin-xu cron]# crontab -l -u root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
* * * * * echo test >> test.log  
* * * * *  ntpdate ntp2.aliyun.com &>> /root/cron.log

注意:想要保留定时任务的结果定向到文件中
* * * * * ntpdate ntp2.aliyun.com &>>/root/cron.log
如果不想保留结果
* * * * * ntpdate ntp2.aliyun.com &>/dev/null


注意: 使用centos,如果关闭了邮件服务,每执行一次定时任务,会自动生成一个小文件,小文件会占用inode号码
[root@linuxn ~]# systemctl stop postfix
定时清理下面目录:
/var/spool/postfix/maildrop/
或者将定时任务执行的结果定向到文件或者空

__EOF__

 

 

2024-12-03 15:23:17【出处】:https://www.cnblogs.com/xuruizhao/p/18555437

=======================================================================================

posted on   jack_Meng  阅读(75)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2023-12-03 Linux环境Shell编程 ---- 系列文章
2023-12-03 .net 下优秀的DI框架推荐,看看你用过几个?
2023-12-03 .net中优秀依赖注入框架Autofac看一篇就够了
2023-12-03 【SqlServer主从复制】Sql Server主从复制【完美实践】
2022-12-03 批处理wmic配置环境变量,实现多个版本的JDK切换
2020-12-03 关于C#中使用消息获取Message.LParam所包含的数据
2020-12-03 WinForm中DefWndProc、WndProc与IMessageFilter的区别

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩