一、定时任务的作用
- 时间同步,每隔5min自动同步一次
- 数据备份,服务配置文件,系统配置文件,数据文件,日志文件
- 辅助软件正常运行+脚本
二、定时任务的分类
1、定时任务文件不同
1.1、系统定时任务
/etc/crontab
1.2、用户定时任务,root是配置文件
/var/spool/cron/root
2、配置方式不同
2.1、系统的定时任务配置方式:直接编辑配置文件
vim /etc/crontab
2.2、用户的定时任务配置方式:使用命令编辑配置文件
crontab -e(语法检测) ----> 实际编辑的 vim /var/spool/cron/root
三、系统定时任务书写方式
* * * * * root 可执行的命令
分 时 日 月 周
分:0-59
时:0-23
日:1-31
月:1-12
周:0-6 or 1-7
时间符号表示方法:
* 表示每分钟 每小时
*/5 表示每隔5分钟执行一次;从整点开始计算,例如8:02定义--->第一次执行的时间8:05
- 表示连续的,7-10表示7点8点9点10点分别执行
, 表示不连续的,7,9,11 表示7点9点11点
四、案例
# 案例1:每天的上午8点30分,执行命令echo test 追加到一个文件中 >> test.txt
30 8 * * * root echo test >> test.txt # vim/etc/crotab
修改为每分钟进行测试,没有问题再改回到原来的时间
* * * * * root echo test >> test.txt # crotab -e
[root@web01 ~]# tailf /var/log/cron # 查看日志
# 案例2:每天晚上12点执行一条命令(笔试题)
00 00 * * * root echo test >> test.txt
执行定时任务的流程
- 执行命令
- 执行完成后会发送一条结果到邮箱的文件中/var/spool/mail/root
- 对用户提供访问到服务器,会将邮件服务关闭,关闭后/var/spoolmail/root就不会再接收任何信息
- 因为邮件服务占用系统资源,降低影响服务器的性能
- 如果邮件关闭后,性能提升,但是命令执行的结果邮件不再接收,会生成临时小文件,大量的小文件会占用inode号
- inode号耗尽磁盘无法写入内容
- 产生临时小文件的位置:ll /var/spool/postfix/maildrop/
停止邮件服务:
[root@web01 ~]# systemctl stop postfix
[root@web01 ~]# systemctl disable postfix
解决方案:
- 开启邮件不会产生临时小文件
- 将定时任务结果定向到空 不会产生临时小文件
- 使用定时任务删除小文件
- 用户的定时任务只识别的命令路径/usr/bin和/bin目录可以在用户的定时任务中/var/spool/cron/root添加PATH变量或者使用绝对路径执行命令,但是不推荐这种方式或者在脚本中定义PATH变量
生产案例
需求:每分钟创建一个以ip地址命名的目录,并把/etc/目录打包压缩放在里面,保持每天的压缩包名字不同
结果:
10.0.0.200/
2023-10-12-13-20.tar.gz
2023-10-12-13-21.tar.gz
#创建目录
mkdir -p /root/$(ifconfig eth0|awk 'NR==2{print $2}')
#解压并根据时间定义名称
tar zcf /root/`ifconfig eth0|awk 'NR==2{print $2}'`/`date +%F:%H:%M:%S`.tar.gz /e
tc
vim /etc/crontab
* * * * * root sh /server/scripts/new.sh
标签:配置文件,var,任务,test,操作,定时,root
From: https://www.cnblogs.com/9Dusk/p/18365183