Pertanyaan: Saya mencoba menangkap output dari perintah teratas ke dalam sebuah file. Ketika saya menjalankan top> output.txt, file output.txt berisi banyak karakter sampah. Apa metode terbaik untuk menangkap output dari perintah teratas ke dalam file teks yang dapat dibaca?
Jawaban: Gunakan opsi operasi mode batch perintah teratas ( -b ) untuk menangkap output perintah teratas ke dalam file.
Jika Anda mencoba mengarahkan output perintah teratas ke file teks seperti yang ditunjukkan di bawah ini, Anda akan melihat bahwa file output berisi banyak karakter sampah.
Saat Anda mencoba melihat file output menggunakan perintah less, Anda akan melihat bahwa file output dibuat dengan banyak karakter sampah.
$ top -n 1 > top-output.txt $ less top-output.txt "top-output.txt" may be a binary file. See it anyway?
Catatan: Opsi -n 1 menunjukkan bahwa hanya satu iterasi dari perintah teratas yang harus dijalankan.
Untuk menghindari masalah ini dan mendapatkan output perintah teratas yang dapat dibaca, gunakan opsi -b di perintah teratas. Jalankan perintah teratas dalam mode batch seperti yang ditunjukkan di bawah ini.
$ top -n 1 -b > top-output.txt $ less top-output.txt top - 16:56:36 up 246 days, 11:14, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8306856k total, 7940744k used, 366112k free, 285136k buffers Swap: 8385920k total, 104k used, 8385816k free, 7391824k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 2064 592 512 S 0.0 0.0 0:02.24 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.47 migration/0 3 root 35 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.61 migration/1
Tentang opsi -b dan -n dari halaman manual perintah teratas:
-b : Batch mode operation Starts top in "Batch mode", which could be useful for sending out- put from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit youâve set with the â-nâ command-line option or until killed. -n : Number of iterations limit as: -n number Specifies the maximum number of iterations, or frames, top should produce before ending.
Anda juga dapat menggunakan metode ini untuk mengarahkan output dari perintah teratas ke program lain seperti yang ditunjukkan di bawah ini.
$ top -n1 -b | head top - 16:58:36 up 246 days, 11:14, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 169 total, 1 running, 168 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8306856k total, 7941612k used, 365244k free, 285144k buffers Swap: 8385920k total, 104k used, 8385816k free, 7392088k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 2064 592 512 S 0.0 0.0 0:02.24 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.47 migration/0 3 root 39 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0