上一篇学习了crontab计划任务,接下来就利用这个来备份日志,只要用到的其实就是cp命令。
首先需要备份的日志目录:/var/log/alternatives.log
备份到tmp/logss下
备份文件后面以时间戳结尾date +%Y%m%d%H%M%S
操作如下:
1、准备一个Shell脚本
#!/bin/bash #编译器
mypath='/tmp/logss' #日志备份到该目录下,定义变量使用单引号
echo ${mypath} #回应/tmp/logss
mylog='/var/log/altenatives.log' #我们要备份的日志
echo ${mylog} #回应/var/log/altenatives.log
time=`date +%Y%m%d%H%M%S`#时间戳,执行命令使用``,esc下面的
echo ${time} #回应时间戳
cp ${mylog} ${mypath}/${time} #备份日志altenatives.log到/tmp/logss路径下
echo ${mypath} ${mypath}/${time} #回应
执行脚本
然而在上述的执行脚本的会发现没有权限,那是因为刚刚的test.sh文件没有权限,更改一下文件权限或者切换到root模式就好了
更改文件权限:
# chmod 777 ./test.sh #需要给这它赋与权限,可读可写可执行,参考Linux 文件和文件夹权限
2、crontab定时任务
查看定时任务
# crontab -l #查看定时任务
3、重启crond
# service crond reload
这样就实现了一分钟一次的日志备份,事实上就是一个copy。
事实上还可以直接在crontab定时任务中直接写一条命令,不用再弄一个shell脚本:
* * * * * cp /var/log/alternativers.log /home/shiyanlou/tmp$(date +\%Y\%m\%d\%H\%M\%S)
同样也可以实现简单的效果,复杂的东西还是专门弄个shell比较好。
推荐阅读: