Bagaimana saya dapat dengan andal memeriksa yang terakhir kali mesin Ubuntu terhubung ke internet?
Dalam hal ini tidak mungkin, cara untuk memeriksa kapan terakhir kali mesin Ubuntu terhubung ke jaringan sudah cukup baik.
sumber
Bagaimana saya dapat dengan andal memeriksa yang terakhir kali mesin Ubuntu terhubung ke internet?
Dalam hal ini tidak mungkin, cara untuk memeriksa kapan terakhir kali mesin Ubuntu terhubung ke jaringan sudah cukup baik.
Metode 1
Meskipun NetworkManager.conf memungkinkan logging, itu tampaknya masih masuk ke syslog. Namun, kern.log juga memilikinya.
grep 'associated' /var/log/kern.log | tail -n1
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated
Metode 2
Saya telah menemukan bahwa NetworkManager menyimpan waktu koneksi terakhir, dan itu diurutkan dalam /var/lib/NetworkManager/timestamps
file, dalam format waktu unix zaman (detik sejak 1970). Tambang saya terlihat seperti ini misalnya:
$ cat /var/lib/NetworkManager/timestamps
[timestamps]
c562ac2d-8911-4273-b165-ed1495b28c9a=1432777079
46cfcdd9-d095-418f-acd6-0a7ca282bb9a=0
d81fb3d0-1717-42c0-903d-4622c2381597=1434895707
b0bdefe6-df88-49bb-83d8-154dd21d77d9=1433093286
Untuk menampilkan entri terbaru
date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"
Awk akan mencari waktu terbesar (dengan kata lain terbaru), dan tanggal akan mengubahnya menjadi bentuk yang dapat dibaca manusia.
Saya menduga juga bahwa file ini ( /var/lib/NetworkManager/timestamps
) digunakan oleh menu Edit Edit Koneksi grafis untuk menampilkan waktu koneksi terakhir
Masalahnya adalah bahwa jika Anda masih terhubung ke titik akses, cara GUI terus now
tidak menunjukkan , waktu ketika koneksi dibuat terakhir
man NetworkManager.conf
, file tersebut/etc/NetworkManager/NetworkManager.conf
; ini hanya akan berfungsi setelah mengaktifkan logging di daemon, tetapi sayangnya saya perlu memeriksa ini setelahnya seandainya mesin belum dikonfigurasi untuk ini. Pokoknya +1 untukkern.log
solusi dan untuk solusi pertama yang mungkin dapat membantu dalam kasus lainAnda dapat memeriksa file
/var/log/syslog
itu akan menampilkan terakhir kali Anda terhubung ke jaringan.Contoh
Anda dapat menjalankan perintah grep untuk menarik hanya apa yang Anda butuhkan dari log
sumber
< /var/apt/syslog grep DHCPREQUEST
atau variasi.DHCPREQUEST
tidak bisa diandalkan. Saya online sejak sore dan karena saya punya banyak permintaan DHCP.Periksa
CONNECTED_GLOBAL
setelah kami temukanlink connected
di/var/log/syslog
/link connected/,/CONNECTED_GLOBAL/
sumber
sudo
yang pertama, namun tidak ada yang bekerja, saya pikir itu karena POSIXly[[:space:]]
. Versi apaawk
yang Anda jalankan?sudo
dihapus. GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p11, GNU MP 6.0.0)%
;) Jika ada output di garis bawah%
. Semua kecuali ini sempurna!Jika Anda tidak menemukan cara "benar" untuk melakukan ini, Anda selalu dapat membuatnya sendiri!
Fungsi bash berikut akan memberi tahu Anda apakah Anda sedang online (ke Internet) atau tidak.
Anda hanya perlu menulis skrip yang memanggilnya (dalam satu lingkaran dan kemudian tidur) dan mencatat tanggal dan waktu terakhir ke file (menimpa, sehingga hanya memiliki nilai terbaru).
Anda harus menambahkan kode ke loop sehingga memeriksa segera setelah awalnya disebut dan log (jadi keadaan awal Anda diatur dengan benar).
Setelah itu, Anda hanya akan login lagi ketika negara pertama kali offline dan ketika pertama kali online setelah offline. Lebih mudah untuk kode daripada menjelaskan. ;)
Ini akan dibatasi dalam akurasi oleh berapa lama penundaan (tidur) yang Anda gunakan dalam loop (agar tidak menjadi loop yang sangat ketat yang mungkin menghabiskan terlalu banyak sumber daya sistem.) Ini juga tidak akan menyadari apa pun yang terjadi sebelum dimulai atau saat tidak berjalan.
Script itu sendiri dapat dimulai (sebagai pekerjaan latar belakang (
&
di akhir doa), mungkin dengannohup
agar tetap berjalan jika proses induknya berakhir) ketika pengguna Anda login dengan menjalankannya dari file $ HOME / .profile Anda, memulainya dengan utilitas autostart desktop Anda (KDE atau Gnome), dari pekerjaan cron yang secara berkala memeriksa untuk melihat apakah itu belum berjalan, atau bahkan dari sistem startup apa pun yang Anda miliki (init / systemd / dll., jika Anda cukup tahu untuk melakukan bahwa.)Ketika Anda tidak dapat menemukan sesuatu seperti ini yang melakukan persis apa yang Anda inginkan, seringkali tidak terlalu sulit untuk menulis skrip Anda sendiri untuk melakukannya dan menjalankannya seperti daemon di latar belakang.
Cara terbaik untuk menjalankannya dari akun pengguna biasa jika memungkinkan - kecuali jika Anda mengkodekannya dalam bahasa yang kuat seperti C atau Python - karena skrip shell yang berjalan dengan hak akses root sering menimbulkan risiko keamanan.
Pendekatan ini memiliki masalah lain. Terkadang ping akan habis memberikan status offline palsu.
Saya memiliki skrip lengkap, offline_alert , yang cukup banyak berlawanan dengan apa yang Anda inginkan - memberi tahu saya ketika saya luring - tetapi kode ini terbukti bermanfaat. Ini memiliki fungsi offline yang lebih baik yang mencoba untuk mengurangi kesalahan positif dari waktu tunggu ping.
sumber
Salah satu cara untuk memeriksa log layanan / daemon apa pun yang menyampaikan di Internet agar berfungsi. Misalnya pembaruan NTP (Network Time Protocol).
Lihat
dpkg -L ntpdate
kait status jaringanSeperti halnya saya telah memeriksa log untuk desktop Ubuntu, pembaruannya berjalan setiap kali jaringan menyala dan terus mencoba setelah penundaan singkat jika pembaruan terakhir gagal. Menghubungkan
ntp.ubuntu.com
.(Catatan, saya menambahkan kolom pertama di output untuk komentar saya)
Saya mengkonfirmasi itu diinstal secara default untuk edisi desktop & server Ubuntu 14.04 LTS 64Bit.
Saya mencobanya di VM, itu hanya menunjukkan waktu menghubungkan atau menghubungkan kembali (dengan Internet tersedia). Bukan yang Anda inginkan (terakhir kali terhubung)
Catatan, syslog adalah log rotate, jika Anda ingin mencari semua log, bahkan yang lama, gunakan
zgrep
sumber
ntpdate
diinstal secara default tetapi tidakntpd
/openntpd
daemon / layanan yang datang dalam paket terpisah. Untuk memeriksa bahwa perubahan waktu & tanggal Anda menjadi salah, putuskan lalu hubungkan kembali.ntpdate
dapat digunakancron
untuk memperbarui waktu secara berkala, ini akan memiliki hasil yang sama dengan menjalankan layanan (ntpd / openntpd). Tetapi Anda mencari konfigurasi default dan tidak ada penyempurnaan tambahan, bukan?