成功备份后,将创建日志文件为000000#.XLOG
和
我需要帮助的是如何动态搜索正确的备份日志文件(刚刚发生的备份),以便能够抓取文件并将其删除。
总之,我知道创建的最后一个.XLOG文件是与上一次成功备份相关的文件。
要列出最后创建的.XLOG文件:
ls -1rt *.XLOG | tail -n 1
使用单线命令:
grep string1 $(ls -1rt *.XLOG | tail -n 1) | awk '{print $7}' | cut -d '>' -f2 | cut -d '
----
如果文件名中包含特殊字符,则存在以下安全版本:
find . -type f -printf "%T@ %p\0" | awk 'BEGIN {RS="\000";} {if (!newesttimestamp || ($1 > newesttimestamp)) {newesttimestamp=$1;newestline=$0;}} END{if (newestline) {print substr(newestline,23);}}'
使用单线命令:
grep string1 $(find . -type f -printf "%T@ %p\0" | awk 'BEGIN {RS="\000";} {if (!newesttimestamp || ($1 > newesttimestamp)) {newesttimestamp=$1;newestline=$0;}} END{if (newestline) {print substr(newestline,23);}}') | awk '{print $7}' | cut -d '>' -f2 | cut -d '
----
除了更新的单行代码外,已经提供的命令已经通过示例进行了测试。
以下命令未经测试。
使用final while块测试单线命令:
$ grep string1 $(find . -type f -printf "%T@ %p\0" | awk 'BEGIN {RS="\000";} {if (!newesttimestamp || ($1 > newesttimestamp)) {newesttimestamp=$1;newestline=$0;}} END{if (newestline) {print substr(newestline,23);}}') | awk '{print $7}' | cut -d '>' -f2 | cut -d '
一切正常后,将最后一个while块中的printf替换为rm :
$ grep string1 $(find . -type f -printf "%T@ %p\0" | awk 'BEGIN {RS="\000";} {if (!newesttimestamp || ($1 > newesttimestamp)) {newesttimestamp=$1;newestline=$0;}} END{if (newestline) {print substr(newestline,23);}}') | awk '{print $7}' | cut -d '>' -f2 | cut -d '