超过15天的unix脚本存档日志文件

时间:2016-08-03 15:13:38

标签: linux unix

我有一个目录中的日志文件列表,这些日志文件已堆放超过一年。我编写了以下脚本来存档超过15天的日志文件。

脚本:

#!/bin/bash
files=($(find /opt/Informatica/9.5.1/server/infa_shared/SessLogs -type f -mtime +15))
file=SessLog_bkup_`date +"%y-%m-%d"`.tar.gz
Backup=/opt/Informatica/9.5.1/server/infa_shared/SessLogs/Backup
tar -zcf $file --remove-files "${files[@]}"
mv $file $Backup

但是,当我运行脚本时,它会抛出错误

错误:

  

./ backuplogs.sh:line 5:/ bin / tar:参数列表太长了。

请告知我是否遗漏了剧本中的内容

感谢您的帮助 基兰

1 个答案:

答案 0 :(得分:0)

您的错误消息是由您的/bin/tar execve(2) tar(1)的{}失败造成的。

阅读hek2mgl的手册页。你可以用

  

E2BIG-T = 文件

     

获取要从 FILE 中提取或创建的名称。

并将其与脚本的其他部分组合(例如,将--files-from命令输出重定向到某个临时文件,由find传递给-T ....)。

但正如logrotate(8)所评论,你真的想要afio(1)

您还可以使用其他存档,例如decorator-based DI library