Ketika saya melakukan ping saya memiliki tampilan ini:
> ping -i 4 www.google.fr
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms
Saya ingin memiliki waktu ping sebelumnya.
Sesuatu seperti:
> (right functions) + ping -i 7 www.google.fr
mardi 15 mai 2012, 10:29:06 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
mardi 15 mai 2012, 10:29:13 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
mardi 15 mai 2012, 10:29:20 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms
Bagaimana Anda melakukan ini di baris perintah (jika mungkin)?
command-line
ping
Olivier Pons
sumber
sumber
Jawaban:
Menggunakan:
Anda akan mendapatkan hasil seperti ini:
sumber
ping 192.168.70.1 | while read pong; do echo "$(awk '{print $1}' /proc/uptime): $pong"; done
Kemungkinan lain untuk menggunakan
ping -D
opsi yang memberi Anda cap waktu sebagai waktu Unix.Di sini versi perintah "Achu" dengan format yang sedikit berbeda:
Itu membuat Anda:
sumber
Ada sebuah utilitas bernama
ts
, yang membaca stdin, menambahkan stempel waktu, dan menulisnya ke stdout:Ini dapat diinstal di Ubuntu dengan .
sudo apt install moreutils
sumber
apt install moreutils
Anda juga dapat menggunakan
gawk
(atauawk
, jika/etc/alternatives/awk
ingin/usr/bin/gawk
):Ini mirip dengan pendekatan dalam jawaban Achu , tetapi
ping
output disalurkan kegawk
bukan loop shell yang memanggildate
. Seperti dengan pendekatan itu, ia bekerja tanpa-c
, tetapi jika Anda tidak lulus untuk membuat ping berhenti setelah n ping, dan Anda menghentikan loop dengan + , tidak akan mencetak statistik biasa.-c n
CtrlCping
Ini terjadi apakah
ping
output disalurkan kegawk
atau shellwhile
loop. Alasannya adalah bahwa perintah di sisi kanan pipa, bukannyaping
, menerima SIGINT ketika Ctrl+C ditekan, danping
tidak tahu untuk mencetak statistik sebelum diakhiri.Jika Anda telah menjalankan
ping
tanpa-c
di sisi kiri pipa (seperti yang ditunjukkan di atas) dan Anda ingin menghentikannya sedemikian rupa sehingga masih mencetak statistik, maka alih-alih menekan Ctrl+ Cdi terminal tempat ia berjalan, Anda bisa menjalankan dari terminal lain, ganti dengan ID proses dari perintah. Jika Anda hanya menjalankan satu instance darikill -INT PID
PID
ping
ping
maka Anda bisa menggunakannyakillall -INT ping
.Atau, Anda bisa mengganti
ping
perintah di sisi kiri pipa dengan perintah yang menjalankan shell, melaporkan ID proses shell itu, dan kemudian mengganti shell itu denganping
perintah (menyebabkannya memiliki PID yang sama):Kemudian baris pertama output, akan menampilkan ID proses dari
ping
perintah (yang biasanya akan berbeda setiap kali). Akan terlihat seperti ini, tetapi dengan waktu dan tanggal yang berbeda dan mungkin ID proses yang berbeda:Kemudian, dari terminal lain, Anda dapat menjalankan
kill -INT 7557
, mengganti7557
dengan ID proses yang sebenarnya Anda lihat, untuk mengakhiriping
perintah sedemikian rupa sehingga menyebabkannya untuk mencetak statistik.(Jika Anda mengambil keuntungan dari kontrol pekerjaan shell Anda fitur , maka Anda dapat mencapai ini dalam terminal yang sama juga. Tetapi jika Anda ingin menyalin teks dari terminal Anda tanpa harus menghapus bagian asing di mana Anda menjalankan perintah di terminal itu, maka Anda harus berhenti
ping
dari terminal terpisah.)Bacaan lebih lanjut:
man ping
- " Ketika jumlah paket yang ditentukan telah dikirim (dan diterima) atau jika program diakhiri dengan SIGINT, ringkasan singkat ditampilkan. "sumber
SIGINT
(yang dilakukan dengan menekan Ctrl + C) keping
proses secara khusus, menggunakankill
ataukillall
. Saya telah memperluas jawaban ini dengan detail.Jika Anda tertarik untuk menyimpannya dalam file, ketikkan perintah di bawah ini di terminal
Anda tidak perlu membuat file teks apa pun, itu akan dilakukan secara otomatis
Ping_Test.txt
sumber
(terima kasih kepada Achu dan Eliah Kagan untuk ide-idenya) ada cara untuk melakukannya
ping
keluaranping
ctrl+c
untuk melakukan ini orang harus menginstruksikan bagian kanan dari perintah (setelah pipa) untuk diabaikan
SIGINT
menggunakantrap "" INT
:sumber