linux 打包,压缩命令【实践】

$tar -cvf /tmp/bak1.tar      /home/username/Downloads        <--仅是打包


$tar -zcvf /tmp/bak2.tar.gz     /home/username/Downloads       <--打包后用gzip压缩


$tar -jcvf /tmp/bak3.tar.bz2   /home/username/Downloads     <---打包后用bzip2压缩


注:参数f是指定打包后的文件名,其后必须跟包的名!


第一:现在要把打包备份的文件命名为time.log.tar.gz

$time=`date +%Y/%m/%d_%H:%M:%S`

$tar -zcvf /tmp/$time.log.tar.gz     /home/username/Downloads


第二:每隔20分钟备份一次

test.sh

#! /bin/bash

$time=`date +%Y/%m/%d_%H:%M:%S`

$tar -zcvf /tmp/$time.log.tar.gz     /home/username/Downloads


chmod +x test.sh

然后,编写crond的时间任务表

$crontab -e

填写:*/20 * * * *  FilePath/tesh.sh

保存退出!

重启crond

$/etc/init.d/cron restart


用crontab -l可查看定时任务是否已经配置完成!


第三:当备份文件超过120分钟时自动删除

怎么让文件存在120分钟后自动删除呢?

思路:每次脚本执行时,读取现有的备份文件列表,判断现有的备份文件是否存在超过20分钟,超过就删除!并退出脚本!(120是20的倍数)

ls -l log.tar.gz | awk '{print $8}'   (awk默认空格分隔,无需加-F)

输出:文件的创建时间

怎么判断这个创建时间到现在是否超过了120分钟??

“linux date 能相减吗” 得到data --data='2 hours age'  输出结果竟然提前两个小时,这也就是说两个时间是能够相比较的!(准确的说应该是比较两个日期的大小)

shell 比较两个日期的大小!方法是先把日期转换成时间戳格式,再进行比较。(用文件创建时的时间和当前时间后退120分钟相比)

。。。。。。。。。。。。。。。。。

find . -name "*.tar.*"  -cmin +2 | xargs rm 文件

但是-cmin +2这个地方有问题!2是小时,若用分钟,应是120







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值