先介绍命令crontab
常用选项
-u:表示指定某个用户,不加-u选项则为当前用户
-e:表示指定任务计划
-l:表示列出任务计划
-r:表示删除任务计划
[root@localhost ~]# crontab -e
crontab: no changes made to crontab
#输入如下内容:
0 2 * * * echo 'ok' > /root/cron.log
分 时 日 月 周
crontab -e实际上是打开了/var/spool/cron/username文件,但在编辑时必须使用crontab -e编辑
简介
作为系统管理员,小楼收到一个需求,需要每天备份系统当天的部分日志文件,日志备份的需求描述如下:
为 shiyanlou 用户添加计划任务
每天凌晨2点的时候定时打包 /var/log 下的 dpkg.log,mysql.log,fontconfig.log 三个文件到 /home/shiyanlou/backup/ 目录
命名格式为 年-月-日.tar,比如今天是2017年10月23日,那么文件名为2017-10-23.tar,若有重名则覆盖
目标
为 shiyanlou 用户添加计划任务
计划任务要执行的命令中不要使用额外的脚本,直接执行相关命令
备份命令执行时需要将三个文件打包成 tar 包,并存储到 /home/shiyanlou/backup 目录下
提示语
date
crontab
cp
知识点
linux计划任务
linux文件备份和打包
首先启动cron并放在后台执行
sudo cron -f &
crontab -eu shiyanlou #添加任务
#在打开的文件中输入
0 2 * * * tar -cf a.tar /var/log/dpkg.log /var/log/mysql.log /var/log/fontconfig;cp a.tar /home/shiyanlou/backup/$(date +\%Y-\%m-\%d).tar
#保存即可
注意
“ % ” 在 crontab 文件中,有结束命令行、换行、重定向的作用,
前面加 ” \ ” 符号转义,否则,
“ % ” 符号将执行其结束命令行或者换行的作用,
并且其后的内容会被做为标准输入发送给前面的命令。