所有日志文件似乎已被删除

所有日志文件似乎已被删除

我想切换到 ubuntu 服务器上的日志目录,并检查 duplicity 日志,但我不知道发生了什么,似乎所有日志文件和子目录都丢失了!这是我登录服务器时使用的命令:

sudo su | cd /var/log | cat duplicity.log | grep -i '. errors' | sort | uniq

我想我应该用 替换前两个管道&&。我有几个问题,我能以某种方式恢复日志吗?它们会继续像平常一样出现吗?删除所有日志文件会造成一些服务器问题吗?为什么会发生这种情况?

答案1

当将命令连接在一起时,每个命令都将在其自己的 shell 中执行。后续程序将不会继承先前程序的环境,因此,诸如此类的事情cd不再存在。

因此,如果您在主目录中,说/home/user并执行cd data | cat filename,会发生什么情况是,您执行cd data并将输出(在这种情况下为零)传输到具有新环境的新进程,该进程仍然在/home/user而不是在,因此在尝试时/data不会找到它。filenamecat

更好的选择是直接说cat /var/log/duplicity.log,而不是cd一开始就说。

cat甚至更好的是:使用时你首先不需要grep

sudo grep -i ". errors" /var/log/duplicity.log | sort -u 

应该可以像预期的那样工作。

相关内容