计划任务

什么是计划任务。

在设定的一个时间自动执行任务,定点执行。

为什么使用定时任务

主要用于周期性的工作,节省人力。

主要分为一下了两种情况

1.系统级别的定时任务: 临时文件清理、系统信息采集、日志文件切割
2.用户级别的定时任务: 定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据


计划任务时间管理

Crontab的配置文件结构。



例题:

00 02 * * *         ls  每天凌晨两点整执行

00 02 1 * *         ls  每月的1号凌晨两点整执行

00 02 14 2 *        ls  每年的2月14日凌晨两点整执行

00 02 * * 7         ls  每个星期天的凌晨两点整执行

00 02 * 6 5         ls  每个月的星期五凌晨两点整执行 

00 02 14 * 7        ls  每个月的14号凌晨两点整执行、或者每个月的星期天凌晨两点整执行

00 02 14 2 7        ls  每年的2月14凌晨两点整执行,或者每年二月的周天凌晨两点整执行

*/10 02 * * *       ls  每天凌晨两点整每间隔十分钟执行一次  

00 00 14 2 *        ls 每年的3月14日凌晨整执行

*/5 * * * *         ls  每间隔五分钟执行一次

00 02 * 1,5,8 *     ls  每年1、5、8月的凌晨两点整执行  

00 02 1-8 * *       ls  每月1到8号的凌晨两点整开始执行

0 21 * * *          ls  每天晚上9点整执行

45 4 1,10,22 * *    ls  每月1、10、22号的凌晨4点45分执行

45 4 1-10 * *       ls  每个月的1-10号凌晨4点45分执行
3.使用crontab编写cron定时任务*

参数 含义
-e 编辑定时任务
-l 查看定时任务
-r 删除定时任务
-u 指定其他用户

计划任务编写实践

  1. root用户同步时间
第一种方式
[root@ZhaoJianHao-1 ~]# ntpdate time.windows.com &>/dev/null
第二种通过阿里云方式
[root@ZhaoJianHao-1 ~]# ntpdate ntp1.aliyun.com

2.每天晚上12点备份/etc/rc.local /etc/sysconfig/ /var/spool/cron /etc/fstab 这些文件到/backup目录

vim dierti.sh  #vim新建脚本,把命令写到脚本中。
#1.创建目录文件
mkdir /backup
#2.编写命令
cp -r /etc/rc.local /etc/sysconfig/ /var/spool/cron /etc/fstab /babkup
[root@ZhaoJianHao-1 ~]# crontab -l #编写计划任务配置,添加任务。
#1.每天晚上12点备份/etc/rc.local /etc/sysconfig/ /var/spool/cron /etc/fstab 这些文件到/backup目录
00 12 * * * /bin/bash /root/diyiti.sh &>/dev/null #执行时指定创建的脚本,不保留执行结果

3.每两个小时打包备份 /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig 备份到/backup目录


[root@ZhaoJianHao-1 ~]# vim diwuti.sh
[root@ZhaoJianHao-1 ~]# cat diliuti.sh
#编写任务
tar xzf /backup/dabaobeifen.tar.gz /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig

crontab -e
* */2 * * * /bin/bash /root/diliuti.sh &>/dev/null

4.每5分钟进行一次时间同步

vim diqiti.sh
ntp1.aliyun.com
ncrontab -e
*/5 * * * * /bin.bash /root/diqiti.sh &>/dev/null

crond如何拒绝某个用户使用

1.使用root将需要拒绝的用户加入/etc/cron.deny
[root@zhaojianhao ~]# echo "xuliangwei" >> /etc/cron.deny

2.登陆该普通用户,测试是否能编写定时任务
[oldboy@zhaojianhao ~]$ crontab -e
You (zhaojianhao) are not allowed to use this program (crontab)
See crontab(1) for more information
计划任务如何调试

1.crond调试

  1. 调整任务每分钟执行的频率, 以便做后续的调试。
  2. 如果使用cron运行脚本,请将脚本执行的结果写入指定日志文件, 观察日志内容是否正常。
  3. 命令使用绝对路径, 防止无法找到命令导致定时任务执行产生故障。
  4. 通过查看/var/log/cron日志,以便检查我们执行的结果,方便进行调试。

2.crond编写思路

1.手动执行命令,然后保留执行成功的结果。
2.编写脚本
脚本需要统一路径/scripts
脚本内容复制执行成功的命令(减少每个环节出错几率)
脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句
脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null
3.执行脚本
使用bash命令执行, 防止脚本没有增加执行权限(/usr/bin/bash)
执行脚本成功后,复制该执行的命令,以便写入cron
4.编写计划任务
加上必要的注释信息, 人、时间、任务
设定计划任务执行的周期
粘贴执行脚本的命令(不要手敲)
5.调试计划任务
增加任务频率测试
检查环境变量问题
检查crond服务日志

你可能感兴趣的:(计划任务)