一、定时任务
1、什么是定时任务:周期性的执行任务计划的软件,linux定时任务的常用软件crond。
2、作用:可用每天每小时按需求重复的执行一项工作。
3、怎么用
(1)系统定时任务计划
不用管理员干预,系统自动执行
#ls -l /var/log/messages*
-rw-------. 1 root root 1269616 Feb 28 05:28 /var/log/messages
-rw-------. 1 root root 614949 Feb 4 03:27 /var/log/messages-20200204
-rw-------. 1 root root 1650504 Feb 9 03:17 /var/log/messages-20200209
-rw-------. 1 root root 481143 Feb 16 19:43 /var/log/messages-20200216
-rw-------. 1 root root 1491546 Feb 22 18:53 /var/log/messages-20200223
查看系统cup:#sar
日志配置:#cat /etc/logrotate.conf
(2)用户定义定时任务
①
cron是定时任务软件名称
crond是服务进程名
crontab命令是用来设置定时任务规则的配置命令
②
相应配置任务首先启动crond:
开机启动:
#systemctl disable crond.service
#systemctl enable crond.service
③
定时任务存放的位置:#ll /var/spool/cron/
以当前用户作为文件名......
指定用户查看定时任务:#crontab -u user -l
④
编写定时任务的语法:分时日月周 文件;
特殊符号:
* 每或每一;
- 连续分割符,连续区间;
, 列举;
/n n是任意数字,每隔;
三、举例
举例1:
a.命令行执行成功
#echo "ninhao" >>/tmp/nihao.log
#cat /tmp/nihao.log
b.配置定时任务
#crontab -e
* * * * * echo "oldboy">>/tmp/oldboy.log
#crontab -l
c.检查结果
检查:#tail -f /tmp/oldboy.log
举例2:
更新系统与互联网时间同步:#/usr/sbin/ntpdate ntp1.aliyun.com
配置定时任务:
每隔5分钟更新系统时间:
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
或*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1
/dev/null:黑洞设备
举例3:
每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生产不同的备份包名。
a.命令行
准备工作:tar zcvf /data/html_$(date+%F).tar.gz /var/www/html
b.配置
#crontab -e
00 00 * * * tar zcvf /data/html_$(date+\%F).tar.gz /var/www/html
错了,不执行,看错误日志:/var/log/cron
定时任务对%的要求,百分号要求用转义字符:\
优秀答案:
a.测试命令是否可行,命令行执行 先切换到目录下,再压缩
#cd /var/www
#tar zcf /data/html_$(date+%F).tar.gz ./htm
b.尽量用脚本文件实现
#mkdir /server/scripts -p
#cd /server/scripts/
编辑脚本:#vim bak.sh
cd /var/www
tar zcf /data/html_$(date+\%F).tar.gz ./htm
查看脚本:#cat bak.sh
执行脚本命令:#/bin/sh/server/scripts/bak.sh
c.编辑定时任务
#crontab -e
00 00 * * * /bin/sh/server/scripts/bak.sh &>/dev/null
四、
定时任务的书写要领:
1、要加注释
2、所有定时任务尽量都以脚本形式执行
3、在执行的shell脚本前加上/bin/sh
4、定时任务中命令或脚本的结尾加&>/dev/null
5、在指定用户下执行相关定时任务
6、不要随意加参数打印输出 例如:-v参数
7、定时任务要放在规范路径下
8、规范操作规程,减少出错
9、配置定时任务中脚本中的命令用全路径
10、时间变量%号要用反斜线转义(只有定时任务里是命令时才需要)
11、若脚本中调用了系统环境变量,要重新定义
12、出错或无法执行,就检查/var/log/cron日志
运维规范:
安装软件:/server/tools
脚本位置:/server/scripts
编辑位置:/application/软件名字-版本,然后要软链接




