【发布时间】:2016-07-27 21:01:59
【问题描述】:
所以我的备份程序将备份存档文件。然后我想列出它们并将它们从服务器中删除。成功备份后会创建一个日志文件,名称为 000000#.XLOG。我可以使用以下命令从日志中获取文件:
猫 00000008.XLOG | grep 字符串1 | awk '{打印 $7}' |剪切 -d '>' -f2 |剪切 -d '
然后我可以删除这些文件。
我需要帮助的是如何动态搜索正确的备份日志文件(刚刚发生的备份),以便能够抓取文件并删除它们。任何建议表示赞赏。我正在考虑以某种方式在脚本开头获取时间戳,然后从比所述时间戳更新的任何 .xlog 文件中获取信息,因为应该只有一个,因为脚本制作时间戳,启动备份,然后抓取文件并删除它们。我只是不知道它的语法。
任何帮助或进一步的建议将不胜感激。
ls -l 存储日志文件的目录:
-rw-rw-rw- 1 根根 2154 Feb 29 23:46 00000001.CAT
-rw-rw-rw- 1 root root 10153 Feb 29 23:46 00000001.XLOG
-rw-rw-rw- 1 根根 1308 Mar 6 03:22 00000002.CAT
-rw-rw-rw- 1 root root 5257 Mar 6 03:22 00000002.XLOG
-rw-rw-rw- 1 根根 1276 Mar 6 03:23 00000003.CAT
-rw-rw-rw- 1 root root 4565 Mar 6 03:23 00000003.XLOG
-rw-rw-rw- 1 根根 1280 Mar 6 03:26 00000004.CAT
-rw-rw-rw- 1 root root 4662 Mar 6 03:26 00000004.XLOG
-rw-rw-rw- 1 根根 1278 Mar 6 03:27 00000005.CAT
-rw-rw-rw- 1 root root 4748 Mar 6 03:27 00000005.XLOG
-rw-rw-rw- 1 根根 1278 Mar 6 03:29 00000006.CAT
-rw-rw-rw- 1 root root 4838 Mar 6 03:29 00000006.XLOG
-rw-rw-rw- 1 根根 1280 Mar 6 03:30 00000007.CAT
-rw-rw-rw- 1 root root 5881 Mar 6 03:30 00000007.DTA
-rw-rw-rw- 1 根根 1240 Mar 6 03:30 00000007.DTX
-rw-rw-rw- 1 root root 4929 Mar 6 03:30 00000007.XLOG
-rw-rw-rw- 1 根根 14019 Mar 31 04:43 00000008.CAT
-rw-rw-rw- 1 root root 220750 Mar 31 04:43 00000008.DTA
-rw-rw-rw- 1 根根 12160 Mar 31 04:43 00000008.DTX
-rw-rw-rw- 1 root root 97720 Mar 31 04:43 00000008.XLOG
-rw-rw-rw- 1 root root 768 Mar 31 04:43 BackupStatus.xml
-rw-rw-rw- 1 root root 768 Mar 31 21:22 RestoreStatus.xml
-rw-rw-rw- 1 root root 5360 Mar 31 21:22 RST20160331-212219.XLOG
-rw-rw-rw- 1 根根 1533 Mar 31 21:22 SYNCH.DAT
-rw-rw-rw- 1 根根 1533 Mar 31 21:22 SYNCH.MIR
我的命令的输出:
/dir/dir/dir/arch.log
/dir/dir/dir/arch2.log
/dir/dir/dir/arch3.log
等等
这是文件的总体布局:
<M ID="4384" O="VV" C="BKUP" S="I" T="2016-03-08T09:43:52. 0-08:00"></M>
<M ID="4314" C="BKUP" S="I" T="2016-03-08T09:43:52. 0-08:00"><PS><P T="0">7.20.5420 Oct 21 2013 12:01:35</P></PS></M>
<M ID="4127" C="BKUP" S="I" T="2016-03-08T09:43:52. 0-08:00"><PS><P T="1">2016-03-08T09:43:52. 0-08:00</P></PS></M>
【问题讨论】:
-
请在相关目录中显示“ls -l”的结果,加上您的单行命令的输出,最后是包含时间戳的文件的重要摘要。
-
所以......你是说你真正想要的是删除刚刚成功完成的备份源吗?有没有可能这是XY Problem,而你真正想要使用的是
rsync --remove-source-files? -
这正是我想做的。唯一的问题是我必须使用我的备份程序作为公司要求和保留/压缩/加密目的。我可以获得“源文件”的唯一方法是从当前的 00000#.XLOG 中获取它们,因为这是唯一列出它们的东西。这会随着每次备份而改变,并在备份完成后写入。
标签: linux bash shell awk archive