Katakanlah saya menjalankan skrip dengan at
di Linux (contoh di bawah) yang saya tahu akan memakan waktu beberapa jam, atau bahkan mungkin beberapa hari. Saya terbiasa at
mengirim email dengan output dari perintah setelah selesai, tetapi bagaimana jika saya ingin mengintip output saat ini sebelum selesai? Mari kita asumsikan saya sudah menjalankan skrip dan lupa untuk mengarahkan ulang output menggunakan tail
, tee
atau metode serupa lainnya dan tidak ingin menghentikan skrip. Apakah ada cara untuk melakukan ini?
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
tail -f
file itu?tail
dan tidak ingin menghentikannya.Jawaban:
Jika pekerjaan telah dimulai, dan Anda memiliki beberapa cara untuk mendapatkan PID dari pekerjaan itu, Anda bisa melihat di mana
at
menyimpan output:Seperti yang Anda lihat, hasilnya disimpan ke file temp, yang sekarang dapat Anda periksa:
Anda perlu
sudo
karena direktori yang berisi tidak dapat diakses oleh dunia (setidaknya di Ubuntu 14.04):sumber
at
pekerjaan. Anda bahkan tidak membutuhkan PID. Anda cukup menjalankansudo ls /var/spool/cron/atspool
dan seharusnya, secara teori menjadi satu-satunya file di sana.Cara lain untuk menentukan file spool mana yang menjadi milik pekerjaan Anda adalah untuk mendapatkan nomor pekerjaan
atq
.Ubah nomor pekerjaan menjadi hex. misal 38 (dec) = 26 (hex).
File Anda akan diberi nama Antrian surat (99% dari waktu, itu
a
) diikuti oleh 5 digit hex job id (Saya belajar ini dengan melihat melalui kode sumber dariat
perintah).Maka Anda dapat melihat stdout
sumber