假设我at在 Linux 上运行一个脚本(下面的示例),我知道这将需要几个小时,甚至可能需要几天。我习惯于at在命令完成后发送带有命令输出的电子邮件,但是如果我想在完成之前查看当前输出怎么办?我们还假设我已经运行了脚本并且忘记使用tail、tee或其他类似方法重定向输出并且不想停止脚本。有没有办法做到这一点?
drew@anubis:~$ at now
warning: commands will be executed using /bin/sh
at> ./myscript.sh
at> <EOT>
job 3 at Sat Jan 7 09:31:00 2017
Run Code Online (Sandbox Code Playgroud)
如果作业已启动,并且您有某种方法可以获取该作业的 PID,您可以看到at保存输出的位置:
$ at now
warning: commands will be executed using /bin/sh
at> sleep 10m
at> <EOT>
job 7 at Sat Jan 7 20:18:00 2017
$ pgrep sleep
7582
$ ls -l /proc/7582/fd
total 0
lr-x------ 1 muru muru 64 Jan 7 20:19 0 -> /var/spool/cron/atjobs/a0000701795998 (deleted)
lrwx------ 1 muru muru 64 Jan 7 20:19 1 -> /var/spool/cron/atspool/a0000701795998
lrwx------ 1 muru muru 64 Jan 7 20:19 2 -> /var/spool/cron/atspool/a0000701795998
Run Code Online (Sandbox Code Playgroud)
如您所见,输出已保存到临时文件中,您现在可以检查该文件:
$ sudo tail -f /var/spool/cron/atspool/a0000701795998
Subject: Output from your job 7
To: muru
Run Code Online (Sandbox Code Playgroud)
您需要,sudo因为包含目录不可访问(至少在 Ubuntu 14.04 上):
$ sudo namei -lx /var/spool/cron/atspool/a0000701795998
f: /var/spool/cron/atspool/a0000701795998
Drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root spool
drwxr-xr-x root root cron
drwxrwx--T daemon daemon atspool
-rw------- muru muru a0000701795998
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |