Menentukan pada waktu apa koneksi TCP yang sedang terbuka dibuat?

11

Bagaimana saya bisa mengetahui kapan koneksi TCP terbuka saat ini dibuat di Linux?

opsguy
sumber
1
Jadi, Anda telah memecahkan masalah ini dan Anda tidak memiliki pertanyaan yang sebenarnya?
Sven
1
Lagi: Apakah ini masalah bagi Anda atau Anda ingin memaksakan diskusi? Dalam pertanyaan yang baru saja ditutup Anda menyatakan bahwa Anda menyelesaikan ini.
Sven
2
Komentar akhir, mengapa tidak berkontribusi jawaban sendiri, alih-alih mencoba untuk menguji orang? Saya yakin mereka akan menghargai dan Anda bahkan mungkin mendapatkan satu atau dua poin daripada mendapatkan cemoohan.
mdpc
2
Kami memang suka orang-orang memberikan solusi untuk masalah, jadi teruskan dan posting milik Anda. Jika orang lain memiliki solusi yang lebih baik / berbeda, semakin baik kita semua.
sysadmin1138
4
blog.stackoverflow.com/2011/07/... Sangat diterima untuk mengajukan pertanyaan dan kemudian menjawabnya sendiri.
user9517

Jawaban:

11

Saya bisa menggunakan lsofuntuk mendapatkan deskriptor file, kemudian berlari stat /proc/<PID>/fd/<file descriptor>untuk mendapatkan tanggal.

opsguy
sumber
1

Kombinasi dari lsofdan /procseperti yang disarankan oleh @opsguy harus melakukan pekerjaan:

lsof -P -i tcp | awk '{print $2,$4}' | tr -d 'u' | sort -u \
| while read pid fd; do stat --printf "%z %N\n" /proc/$pid/fd/$fd ; done | sort -r
brx di dinding
sumber