12-定时任务

1.什么是定时任务

指定某个日志或时间周期性的执行命令:ps -ef | grep crond

2.什么是crond:blog.driverzeng.com

crond就是计划任务,类似我们平时生活中的闹钟,定点执行行为

3.为什么要使用定时任务

4.使用场景

 1)数据备份

 2)服务器巡检

1 #!/bin/bash
2 mem_total=`free -m | awk 'NR==2 {print $2}'`
3 mem_used=`free -m | awk 'NR==2 {print $3}'`
4 mem_free=`free -m | awk 'NR==2 {print $4}'`
5 mem_b=`free -m | awk 'NR==2 begin{printf "%.2f%\n",($3/$2)*100n}'`
6
7 echo '---- mem check info ----'
8 echo "总内存:$mem_total"
9 echo "已使用:$mem_used"
10 echo "还剩余:$mem_free"
11 echo "使用率:$mem_b"

 sh mem_check.sh

 3)日志切割

  cp /var/log/messages /var/log/messages-$(date +%Y%m%d -d '-1 day'):每天晚上12点执行

 

5.测试时间同步任务

 1)安装ntpdate命令:yum install -y ntpd

 2)测试时间同步命令:ntpdate ntp.aliyun.com

 3)确认命令所在任务:which ntpdate

 4)配置定时任务:crontab -e 

  #每5分钟执行一次hello world输入到文件
  */5 * * * * ntpdate ntp.aliyun.com

 5)查看定时任务:crontab -l

 

案例:

 需求:

  1.每天备份文件名要求格式:2018-02-20_hostname_etc.tar.gz

  2.存放备份内容的目录要求只保留3天的数据

  3.在执行计划任务时,不要输出任务信息

 编写脚本

 vim bei.sh 

  #!/bin/bash
  mkdir -p /backup
  tar zcf /backup/2022-05-01_hostname_etc.tar.gz /etc
  find /backup/ -type f -mtime +3 | xargs rm -rf

 将脚本写入定时任务

 crontab -e

  #每5分钟执行一次时间同步
  */5 * * * * ntpdate ntp.aliyun.com
  #每天3:50执行备份文件脚本
  50 3 * * * /bin/bash ~/bei.sh

 总结:

  1.定时任务规则配置一定要有注释

  2.定时任务里面尽量使用脚本

  3.运行脚本习惯性使用绝对路径

  4.脚本执行结果或者命令执行结果尽量有用的定义到指定的日志,没用的定义到空

  5.避免不必要的输出

  6.打包命令尽量使用绝对路径

  7.系统的环境变量配置:vim /etc/profile(或:vim /etc/profile.d/bei.sh 或echo "export PATH=$PATH:/backup" >> /etc/profile ——>source /etc/profile)

posted @ 2022-05-01 11:35  修心的博客  阅读(496)  评论(0编辑  收藏  举报