我的同事跑了grep | crontab
。此后所有工作都消失了。看来他是想逃跑crontab -l
。
那么运行命令后发生了什么grep | crontab
?谁能解释一下吗?
答案1
crontab
可以crontab
为从 STDIN 读取的调用用户(或提及的用户root
)安装新的。这就是您的情况。
grep
没有任何选项将会像往常一样在 STDERR 上生成一条错误消息,并且您正在将的 STDOUT 传输grep
到 STDIN,而crontab
它的是空白的,因此您的信息crontab
将会消失。
答案2
他是如何终止工作的?他输入的是 Cc 还是 Cd?如果他输入 Cd,则相当于运行crontab < /dev/null
,并且您已将用户的 crontab 文件替换为空文件。另一方面,如果您crontab
使用 Cc 杀死,则 crontab 可能已被保留,但您可以通过运行轻松检查crontab -l
。
该程序所做的只是编辑 中的 crontab 文件/var/spool/cron/
,因此如果您碰巧有文件系统的备份,则可以从那里恢复用户的 crontab 文件。
更新
我没有看到 grep 没有参数,所以 grep 会出错,而且 crontab 文件确实会被吹走。