Logrotate lastaction脚本无法正常工作

时间:2014-09-22 11:54:11

标签: shell debian logrotate

我有一个lastaction脚本我试图在我的" log"文件夹,因为我想移动log / archive文件夹中日志文件夹中的所有文件和文件夹。所以我只是添加了

mv log/* log/archive/2014

显然,我得到一个错误,说存档文件夹无法移动到其自身的子目录中,所以我尝试将额外参数添加到move命令以移动除存档文件夹之外的所有内容。

mv !(archive) log/* log/archive/2014

这个确切的命令,如果从cli执行,可以正常工作,但是当在lastaction / endscript块中添加时,它会抛出以下消息

  

logrotate_script:2:logrotate_script:语法错误:"("意外

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您使用bash作为shell。您还启用了extglob设置。

当logrotate执行那个shell脚本时,其中一个或另一个不是真的。

mv命令对我来说也很奇怪。如果archive在日志下,那么我不明白为什么!(archive)没有log/作为前缀。此外,log/*仍应匹配log/archive,无论之前是extglob个glob。 (那就是我认为你想要mv log/!(archive) log/archive/2014,假设你不想忽视mv首先发出的警告。)