Perintah Unix Date tidak berfungsi untuk beberapa server

1

Saya mencoba menjalankan perintah tanggal di server unix untuk kemarin. Perintah yang dicoba adalah:

date --date="1 day ago"
date --date="1 days ago"  
date --date="yesterday"
date --date="-1 day"

Perintah ini bekerja di server tetapi perintah yang sama tidak berfungsi di beberapa server lain, di mana tanggal mencetak dengan benar tanggal saat ini. Adakah yang bisa menyarankan apa yang bisa menjadi masalah dengan server lain? Saya mendapatkan kesalahan seperti:illegal option -- date=1 day ago

Rincian server: SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW, SPARC-Enterprise

Swagatika
sumber
1
Dua saran: (1) tanyakan di situs di mana pertanyaannya tidak di luar topik; (2) termasuk uname -auntuk server di mana ini tidak berfungsi.
NPE
Itu karena --date="1 day ago"tidak portabel.
@ NPE Terima kasih atas sarannya. Bisakah Anda memberi contoh bagaimana saya bisa menambahkan uname -a?
1
Dia tidak meminta Anda untuk menggunakan uname -a untuk menyelesaikan masalah Anda, ia ingin tahu versi mana yang Anda jalankan pada mesin yang memberi Anda masalah.
Randy Howard
SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW, SPARC-Enterprise

Jawaban:

5

--date bukan pilihan tanggal konvensional pada banyak sistem unix.

Jika Anda memiliki berbagai platform UNIX / linux-seperti untuk bekerja dengan, cobalah untuk memeriksa halaman manual untuk tanggal (1) pada masing-masing (jika halaman manual diinstal) dan melihat opsi tanggal apa yang umum untuk mereka semua sebagai titik awal.

Anda mungkin menemukan date -v (sesuaikan) yang cukup portabel.

Sesuatu seperti date -v-1dmungkin berhasil. Uji pada setiap sistem untuk melihat apakah itu bekerja pada mereka semua. Ini menampilkan nilai data saat ini disesuaikan satu hari di masa lalu.

Randy Howard
sumber
Terima kasih. Lalu apa cara lain saya bisa mendapatkan tanggal / kemarin?
kurangi satu hari dari tanggal sekarang? :-) Diedit di atas.
Randy Howard
Jika Anda bisa memberikan contoh akan sangat membantu.
Saya ingin tahu apakah di atas bekerja pada SunOS yang Anda referensi di komentar di atas.
Randy Howard
Semua cara yang disebutkan di atas berfungsi di server ini: Linux wnl-svr202b 2.6.32-220.7.1.el6.x86_64 # 1 SMP Jumat 10 Februari 15:22:22 EST 2012 x86_64 x86_64 x86_64 GNU / Linux
1

Anda cukup mengurangi 24 jam dari TZvariabel lingkungan sebelum menelepon date.

$ TZ=GMT date
Wed Mar 27 09:11:02 GMT 2013
$ TZ=GMT+24 date
Tue Mar 26 09:11:05 GMT 2013

Bekerja pada Solaris dan Linux.

Jens
sumber