所以我想用...
cp /var/log/somelogs/* ./temp
...将一些日志文件复制到临时文件夹并分析它们。问题是生成日志文件的进程不受我的控制,并且它经常会实现日志轮换 - 在繁忙时间每 15 秒一次!最终 cp 将发生,同时日志轮换也会发生。我很好奇当这种情况发生时会发生什么。
虽然我可以高兴地再等待几分之一秒来仔细阅读该文件夹,但我如何判断我的文件夹是否损坏? cp 是否可能因错误代码而终止/崩溃?它会打印一些东西到标准输出吗?或者它可能会默默地向我传递一个可能已损坏/命名错误的文件夹的日志?
遗憾的是,fs 是 ext4 并且超出了我的控制范围,因此我无法利用快照,嘘:/
答案1
命令行上的通配符 (" /var/log/somelogs/*
") 首先展开(在cp
开始执行之前)。如果生成的文件列表包含不再存在的文件名(由于cp
复制早期文件时运行日志轮换),cp
则会抱怨,尝试下一个文件,并返回非零退出状态(bash
variable $?
)。看man cp
。
请参阅通配符扩展;
echo cp /var/log/somelogs/* ./temp