让我首先说我对linux和bash脚本非常陌生,我只在这里呆了两个星期,所以假设我什么都不知道!
出于开发的原因,我需要将日志文件复制到另一个位置和名称,下面是我的日志旋转文件:
/pub/share/logs/results.txt {
daily
rotate 30
dateext
compress
delaycompress
missingok
notifempty
postrotate
sh /pub/share/scripts/result_rotate.sh $1 > /dev/null
endscript
}bash脚本很简单:
#!/bin/bash
date=$(date +%Y%m%d)
cp $1-$date /pub/share/reports/data.log我不知道我是否需要把它放在一个脚本文件中,或者我是否可以在后置旋转块中输入这个文件,但是现在这是可行的。
它传递要旋转的文件的名称,但是在它已经用日期扩展名重命名之后才会这样做,因此上面的日期代码。这样做安全吗?有没有可能出现这样的情况:它可能无法正确匹配?
发布于 2020-12-01 16:09:42
是的,为什么不呢?你可以直接用旋转后块写:
cp $1-$(date +%Y%m%d) /pub/share/reports/data.log >/dev/null在更糟糕的情况下,日志轮转(例如,使用今天的日期和posted )在第二天的日期中运行,所以我们的cp命令将不会复制该文件。为此,您可以始终获得一天前的文件,而不是今天的日期旋转文件:
cp $1-$(date -d'-1day' +%Y%m%d) /pub/share/reports/data.log >/dev/null当然,您也可以复制这两个文件,即今天的日期和昨天的日期文件。
https://unix.stackexchange.com/questions/622372
复制相似问题