bash脚本按文件夹名称删除日期文件夹 [英] bash script to remove date folders by folder name

查看:145
本文介绍了bash脚本按文件夹名称删除日期文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由当前日期创建一个备份文件夹文件夹中的脚本。该脚本通过cron运行,每天一次,每一天。

有没有办法通过文件名来删除文件夹年长超过3天?像

日期-3?

脚本的作品:谢谢乔所以。此脚本创建日期的文件夹。 COM presses文件进行备份,坚持他们在您的备份目录,并清除了超过3天以上的备份: - )

 #!/斌/庆典    CD /家庭/备份    的mkdir $(日期+%Y-%M-%D)    CD /选择/    焦油-pczf /家庭/备份/ $(日期+%Y-%M-%D)/opt.tar.gz code    CD的/ var /    焦油-pczf /家庭/备份/ $(日期+%Y-%M-%D)/var.tar.gz工作CD /家庭/备份/
threedaysago =`日期-D4天前+%Y%M%D`对于在备份[0-9] [0-9] [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9]

    backupdate =`回声$备份| TR -d -`#删除破折号    如果测试$ backupdate-lt$ threedaysago
    然后
        室射频$备份
    科幻
DONE


解决方案

  threedaysago =`日期-D4天前+%Y%M%D`对于在备份[0-9] [0-9] [0-9] [0-9]  -  [0-9] [0-9]  -  [0-9] [0-9]

    backupdate =`回声$备份| TR -d -`#删除破折号    如果测试$ backupdate-lt$ threedaysago
    然后
        室射频$备份
    科幻
DONE

独立的mtime的工作,我可以告诉你,它不会在特别奇怪的角落情况下打破; - )

I have a script which creates folders in a backup folder by the current date. This script is run once a day, every day via cron.

Is there a way to remove the folders older than 3 days via folder name? something like

date -3 ?

Script that works: Thank you to Jo So. This script creates a folder by date. Compresses the files for backup, sticks them in your backup directory and clears out backups older than 3 days :-)

    #!/bin/bash

    cd /home/backups

    mkdir $(date +%Y-%m-%d)

    cd /opt/

    tar -pczf /home/backups/$(date +%Y-%m-%d)/opt.tar.gz code

    cd /var/

    tar -pczf /home/backups/$(date +%Y-%m-%d)/var.tar.gz work

cd /home/backups/
threedaysago=`date -d "3 days ago" +%Y%m%d`

for backup in [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
do
    backupdate=`echo "$backup" | tr -d -`   # remove dashes

    if test "$backupdate" -lt "$threedaysago"
    then
        rm -rf "$backup"
    fi
done

解决方案

threedaysago=`date -d "3 days ago" +%Y%m%d`

for backup in [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
do
    backupdate=`echo "$backup" | tr -d -`   # remove dashes

    if test "$backupdate" -lt "$threedaysago"
    then
        rm -rf "$backup"
    fi
done

Work independently of mtime, and I can tell you that it will not break under particularly strange corner cases ;-)

这篇关于bash脚本按文件夹名称删除日期文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆