我有一个目录中的日志文件列表,这些日志文件已堆放超过一年。我编写了以下脚本来存档超过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:参数列表太长了。
请告知我是否遗漏了剧本中的内容
感谢您的帮助 基兰
答案 0 :(得分:0)
您的错误消息是由您的/bin/tar
execve(2) tar(1)的{}失败造成的。
阅读hek2mgl的手册页。你可以用
E2BIG
,-T
= 文件获取要从 FILE 中提取或创建的名称。
并将其与脚本的其他部分组合(例如,将--files-from
命令输出重定向到某个临时文件,由find
传递给-T
....)。
但正如logrotate(8)所评论,你真的想要afio(1)
您还可以使用其他存档,例如decorator-based DI library