-2

我在备份脚本中使用了查找和复制命令的组合。它用于相当大量的数据,

  1. 首先,在 25 个文件中,它需要找到所有超过 60 分钟的文件
  2. 然后将这些文件复制到一个临时目录 - 这些文件中的每一个都是 1.52GB 到 2GB
  3. 这 25 个文件之一将连续追加数据。

    我从谷歌搜索中了解到,如果对尝试 tar 的文件进行更新,则 Tarring 操作将失败,查找和复制是否也一样?我正在尝试这样的事情,

    /usr/bin/find $logPath -mmin +60 -type f -exec /bin/cp {} $logPath/$bkpDirectoryName \;
    
  4. 在此之后我有一个步骤,我将文件复制到上面提到的临时目录(&bkpDirectoryName),这里我使用如下所述,

    /bin/tar -czf $bkpDir/$bkpDirectoryName.tgz $logPath/$bkpDirectoryName
    

    这也失败了。

过去很多天都在运行相同的备份脚本,突然它开始失败并让我头疼!有人可以帮我吗?

4

3 回答 3

0

尝试这个

output=`find $logPath -mmin 60 -type f`
if [ "temp$output" != "temp" ];then
  cp -rf $output $other_than_logPath/$bkpDirectoryName/
else 
   echo sorry
fi

我认为,您使用的是 +60 而不是 60。

我也想知道,你的脚本被调用的时间间隔。

于 2015-04-05T17:16:42.143 回答
0
#!/bin/bash
for find in `find / -name "*" -mmin 60`
do
 cp $find / ## Choose directory
done

这基本上就是你所需要的,只需更改我猜的目录//

于 2015-04-06T11:52:46.647 回答
0

你能试试这些步骤吗

  1. 而不是复制超过 60 分钟的文件,而是移动它们。
  2. 在移动的文件上运行 tar

如果您执行上述操作,则不会移动连续附加的文件。

如果您的其他 24 个文件中的任何一个可能在 60 分钟后更新,您可以执行以下操作

  1. 移动文件后,请触摸同名文件,以防出现不连续的异步更新。
  2. 对文件进行 tar 处理时,为 tar 文件提供时间戳名称。这样您就可以滚动 tar 日志

如果由于您的某些自定义要求而无法正常工作,请尝试执行rsync,然后对 rsynced 文件执行相同的操作(即查找和 tar 或仅 tar)

于 2015-04-03T04:33:02.900 回答