day23-Linux计划任务

2019-08-26  本文已影响0人  恩楠

crond计划任务

[root@ennan ~]# cat /etc/crontab 
SHELL=/bin/bash                             # 执行的命令解释器
PATH=/sbin:/bin:/usr/sbin:/usr/bin          # 环境变量
MAILTO=root                                 # 邮件发送给谁
    
# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)                          # 分
# |  .------------- hour (0 - 23)                            #时
# |  |  .---------- day of month (1 - 31)                    #日
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...    #月
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)      #星期
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
参数 解释
-e 编辑定时任务
-l 查看定时任务
-r 删除定时任务
-u 指定其他用户

使用-r会删除目前所有的定时任务,慎用


  1. 每5分钟执行一次时间同步
# 测试命令
[root@ennan ~]# ntpdate ntp1.aliyun.com
26 Aug 14:57:48 ntpdate[8147]: step time server 120.25.115.20 offset -2.430188 sec
编写定时任务
[root@ennan ~]# crontab -e
# 查看定时任务
[root@ennan ~]# crontab -l
# 每5分钟执行一次时间同步
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null
  1. 每天的下午3,5点,每隔半小时执行一次sync命令
[root@ennan ~]# crontab -l
# 每天的下午3,5点,每隔半小时执行一次sync命令
*/30 15,17 * * * sync &> /dev/null
  1. 每天凌晨3点做一次备份?备份/etc/目录到/backup下面
    (1) 将备份命令写入一个脚本中
    (2) 每天备份文件名要求格式: 2019-05-01_hostname_etc.tar.gz
    (3) 在执行计划任务时,不要输出任务信息
    (4) 存放备份内容的目录要求只保留三天的数据
# 根据要求编写脚本
[root@ennan ~]# cat back.sh 
mkdir -p /backup
tar czf /backup/$(date +%F)_$(hostname)_etc.tar.gz /etc/
find /backup/ -name "etc.tar.gz" -mtime +3 | xargs rm -f
# 编写定时任务
[root@ennan ~]# crontab -l
# 每天三点备份/etc目录
00 03 * * * bash /root/back.sh &> /dev/null

定时任务编写规范

  1. 给定时任务注释
  2. 将需要定期执行的任务写入Shell脚本中,避免直接使用命令无法执行的情况tar date
  3. 定时任务的结尾一定要有&>/dev/null或者将结果追加重定向>>/tmp/date.log文件
  4. 注意有些命令是无法成功执行的 echo "123" >>/tmp/test.log &>/dev/null
  5. 如果一定要是用命令,命令必须使用绝对路径

定时任务如何备份
定时的备份/var/spool/cron/{usernmae}

上一篇下一篇

猜你喜欢

热点阅读