***一为什么要用计划任务?它的好处是什么? 在linux系统中我们经常需要将某些命令或脚本放入计划任务中去执行。 例如:服务器在白天的访问量一般比较大,而服务器在承受着巨大访问压力的同时对其进行全备份是不合适的,这时就可以考虑将备份工作放入系统计划任务,这样系统可以在夜间访问量小的时候自动执行备份任务。
LInux系统中的两种计划任务
1.at 一次性计划任务:只会执行一次 at命令的作用和用法如下 系统服务:atd 描述:在指定的时间执行特定命令 用法:at 时间 选项:-m 当计划任务执行后发送邮件给用户 -l 查看用户计划任务 -d 删除用户计划任务 -c 查看at计划任务具体内容
使用at制定一次性计划任务前: 先还原环境再远程连接虚拟机 systemctl start atd //确保atd服务是开启的 systemctl enable atd //确保服务开机启动
示列:指定一个当天23点11分执行的计划任务
*]# at 23:11 > tar -jcf log.tar.bz2 /var/log //计划任务内容 > hahaxixi //计划任务 /可以输入多条命令 //输入完毕后按ctrl+D快捷健结 **> <EOT>** job 1 at Tue Apr 9 23:11: 00 2019 //系统提示有编号为1的计划任务 ] #al -l(字母) //查看系统任务 ] #al -c 1 //查看编号1具体内容 ] #al -d 1 //删除编号为1的任务**2.cron计划任务:可以周期性执行,比较常用 软件包:cronie ,crontabs 系统服务:crond 日志文件:/var/logcrond cron作用:为每个用户为维护周期性的计划任务文件 编辑格式: crontab -e [-u 用户名] 选项: -u 指定计划任务的用户,默认为当前用户 -l 查看计划任务 -r 删除计划任务 -e 编辑计划任务 -i 使用-r删除计划任务时,要求用户确认删除
格式:分 时 日 月 周 命令 (绝对路径) * * * * * 命令
3.自定义计划任务存放路径: /etc/cron.daily 可直接存放脚本,系统自动运行 /etc/cron.hourly /etc/cron.weeky
制定cron计划任务前确保crond服务开启 #systemctl start crond //确保服务是开启的 #systemctl enable crond //确保服务开机启动
**]# crontab -e 11 23 * * 5 tar -czf log.tar.bz2 /var/log //每周五执行日志备份 00 */3 * * * who //每3小时的整点检查用户登录情况 00 10 * * 3,5 free | mail -s “MEm" server0.example.com** //每周三,周五10点将系统内存信息发送给自己的邮箱 :wq4.制定****周期性计划任务 为用户natasha配置一个定时任务 -每天在本地时间14:23执行 -需要完成的任务操作为 /bin/echo hiya 步骤一:配置crontab任务记录 (1)启动系统服务
]# systemctl start crond //确保服务可用 ] # systemctl enable crond(2)制定计划任务,创建用户
]#useradd natasha //创建用户 ]# crontab -e -u natasha //配置任务 23 14 * * * /bin/echo hiya步骤二:检查任务是否执行 1)将系统日期时间临时调整到任务时间点前10秒左右 2)等待10秒后查看/var/log/cron日志,应该会有执行记录 3)恢复系统日期时间
**]# date -s 14:33 ]# vim /var/log/cron**总结:cron计划任务可以和脚本搭配,可以实现一些自动化任务,提高工作效率