linux7 shell 定时任务脚本对文件进行压缩保存和删除前几天的压缩包
主体思路分为两个部分
第一,创建一个文件,就是sell文件
第二,定时执行
创建一个shell文件
vim demo.sh
←这个文件放在什么位置都行,只要不碍事就行,只是为了测试
然后文件内部的头部要写上
#!/bin/bash
这是固定格式为何这样固定可以查百度
下面就是要执行的内容,如果不是很明白可以直接把的echo “helol”
给粘贴进去保存退出。
然后执行文件./demo.sh
具体的事这样的
#!/bin/bash
timel=$(date "+%Y-%m-%d-%H-%M-%S")
tar -zcPf /home/demo/${timel}doudou.tar.gz /home/test
find /home/demo/ -mmin +60 -name *doudou.tar -exec rm -r {} \;
解释:
- $(date “+%Y-%m-%d-%H-%M-%S”) ,获取年月日,格式可以更改;
- tar -zcPf /home/demo/${timel}doudou.tar.gz /home/test ,压缩文件,里面有一个P的意思是使用全路径进行压缩,如果不使用会报tar: Removing leading `/’ from member names;
- find /home/demo/ -mmin +60 -name *doudou.tar -exec rm -r {} ; ,网上找的意思是:
/home/demo/
文件夹下,-mmin +60
=》60分钟前,*doudou.tar
=》以doudou.tar结尾的文件,-exec
=>固定语句,rm -r
=》删除,{} \
固定语句,如果想改成1天前可以用mtime;
定时执行
用crontab -参数
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
基本格式 :
#!/bin/bash
* * * * * 这里是要执行的命令或文件
*
分别代表的事 分时日月周
如果不执行可以手动的执行*
后面的命令或文件
注意:
crontab是需要启动的
linux7 启动命令:systemctl start crond.service