【问题标题】:Script to backup folders备份文件夹的脚本
【发布时间】:2015-07-02 13:31:27
【问题描述】:

我在/opt/backup 中有一个文件夹,每天都会在其中创建文件夹。为了节省空间,我想所有超过 2 天的文件夹。

我不想创建一个单独的 zip 文件,而是单独压缩每个文件夹,并保留名称。我试过了:

#!/bin/bash
# Backup files

files=($(find /opt/backup/ -mtime +"2"))
for files in ${files[*]}
do
    echo $files
    tar cvfz backup.tar.gz $files
done

但这只是创建一个 zip 文件,我希望每个文件夹分开。

脚本将每 2 天凌晨 02:00 运行一次。请问这个脚本怎么写?

【问题讨论】:

    标签: gunzip bash backup


    【解决方案1】:

    你把它弄得太复杂了。您应该 足够旧的目录,然后简单地 tar 压缩这些目录。

    find /opt/backup/ -mtime +"2" -type d -exec tar cvfz backup.tar.gz {} \;
    

    这将查找所有目录 (-type d) 并对它们执行特定命令 (tar cvfz backup.tar.gz {})。其中{} 是找到的目录的占位符。

    如果您想保留目录的名称,只需再次使用{}

     find /opt/backup/ -mtime +"2" -type d -exec tar cvfz {}.tar.gz {} \;
    

    请注意,{} 周围不需要引号,因为特殊字符将在 findexec 中得到很好的处理。

    【讨论】:

      猜你喜欢
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2014-09-08
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多