Tanggal login dan waktu login pengguna

25

Saya ingin mengambil waktu login dan tanggal login pengguna, apakah ada perintah di Unix yang menyediakan tanggal login dan waktu login pengguna? masalah ini saya ingin tampil dalam skrip Shell di mana nama pengguna menerima dari pengguna akhir dan setelah memeriksa ketersediaan pengguna, saya ingin mengambil waktu masuk dan tanggal masuk pengguna dalam variabel yang berbeda dan kemudian menampilkan menggunakan perintah 'echo' .

Paresh Mayani
sumber

Jawaban:

32

Untuk info masuk yang lalu:

last "$USER_NAME"

Juga, perintah ini whomencantumkan login saat ini.

Jika Anda mencari tanggal login terakhir pengguna, beberapa sistem menyediakannya secara langsung, misalnya lastlog -u "$USER_NAME"di Linux atau lastlogin "$USER_NAME"di FreeBSD. Ini juga tersedia dalam output finger, tetapi tidak dalam bentuk yang mudah diurai. Bagaimanapun, itu tersedia dalam output last(pada banyak varian unix, last -n 1 "$USER_NAME"menunjukkan login terakhir; jika tidak Anda dapat melakukannya last "$USER_NAME" | head -n 1). Perhatikan bahwa login terakhir mungkin tidak sesuai dengan logout terakhir (mis. Pengguna tetap terhubung dari satu asal untuk waktu yang lama dan membuat login jaringan cepat baru-baru ini).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
saya tahu perintah 'siapa' yang menyediakan informasi login semua pengguna, tetapi saya ingin memiliki "Tanggal masuk" dan "Waktu masuk", dan saya tidak ingin informasi pengguna untuk login terakhir tetapi untuk nama pengguna yang diterima dari pengguna dan ingin mengambil informasi tentang pengguna itu
Paresh Mayani
? "$ username" terakhir menyediakan "Tanggal masuk" dan "Waktu masuk". Bagian kedua dari kalimat Anda tidak jelas bagi saya, mungkin itu bahasa Inggris saya, mungkin milik Anda ... "Nama pengguna diterima dari pengguna [...]"?
echox
@ Paresh: Saya sudah kehabisan cara untuk menafsirkan pertanyaan Anda. Jika jawaban saya masih tidak membantu, coba buat pertanyaan Anda lebih jelas.
Gilles 'SO- stop being evil'
@ Paresh: last $USER_NAMEakan menampilkan pengguna saat ini juga. Ini akan menampilkan sesuatu sepertiusername ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski
@Gillies, biarkan saya jelaskan apa yang ingin saya lakukan sebenarnya, saya ingin membuat shell-script di mana saya menerima nama pengguna sebagai "baca $ username" dan kemudian saya ingin memeriksa apakah pengguna itu masuk atau tidak, jika ya maka saya ingin mengambil waktu masuk dan tanggal masuk mereka, daripada untuk dukungan
Paresh Mayani
3

Di linux, tidak last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'akan mengembalikan apa pun jika pengguna tidak masuk, jika tidak daftar tanggal / waktu untuk setiap sesi aktif.

Unix lain yang tidak tahu -Ropsi untuk bertahan (yang menekan nama host) akan memerlukan beberapa modifikasi.

Seth L
sumber