我在 crontab 中有 tar 命令
52 9 * * * sudo tar czpf /path/tar.gz /data
但是当我 grep ps 输出时我得到了这个
john 19496 0.0 0.0 4508 840 ? Ss 09:52 0:00 /bin/sh -c sudo tar czpf /A_BACKUPS/data-full-`date "+%d-%m-%Y-%H:%M"`.tar.gz /data > /home/john/logs/cron__TAR__DATA-`date "+%d-%m-%Y-%H:%M"`.txt 2>&1
root 19499 0.0 0.0 48576 3532 ? S 09:52 0:00 sudo tar czpf /A_BACKUPS/data-full-07-02-2017-09:52.tar.gz /data
root 19500 3.3 0.0 29572 2892 ? S 09:52 0:04 tar czpf /A_BACKUPS/data-full-07-02-2017-09:52.tar.gz /data
john 19528 0.0 0.0 16572 2136 pts/0 S+ 09:54 0:00 grep --color=auto A_BA
为什么有 3 个不同的流程
答案1
Cron 命令行可以是复杂的 shell 命令,因此它们是使用 shell 执行的。因此sh -c ...
。然后,您将得到命令行在其自己的进程中执行的实际命令 - sudo ...
。然后,您将得到启动的命令sudo
,tar
。最后,您将得到grep
,因为你用过ps | grep
。