Pada CentOS 6 Linux saya gunakan date +%a
di beberapa cronjobs dan skrip untuk menghasilkan nama-nama logfile seperti myprog-Tue.txt
dan ini bekerja dengan baik untuk saya sejak bertahun-tahun.
Tapi sekarang untuk satu program saya perlu menghapus file log sebelumnya, yaitu di cronjob saya sebelum saya memulai program saya dan mengarahkan hasilnya ke myprog-Tue.txt
, Saya ingin menghapus myprog-Wed.txt
.
Dengan cara ini saya ingin mendapatkan file log lama dari jalan saya, tetapi masih memiliki 5-6 hari file log sekitar.
Jadi saya sudah mencoba:
# date -v+1d +%a
date: invalid option -- 'v'
Try `date --help' for more information.
Adakah yang tahu apa yang salah di sini?
Jawaban:
Anda akan melakukannya seperti ini:
Itu membuat:
Duduk
sumber
Masalahnya bukan bagaimana Anda bisa menggunakannya
date
untuk menampilkan apa yang Anda inginkan ... masalah Anda adalah:Jadi, mengapa tidak menggunakan
find
untuk menghapus semua file tetapi minggu ini?Sebagai tambahan,
date
memiliki banyak implementasi berbeda - Saya ingat terakhir kali saya menggunakannya agak sulit untuk menemukan yang benarflags
untuk melakukan apa yang saya inginkan ... dan itu tidak mudah untuk membuatnya bekerja dengan cara yang sama antara Linux dan mesin AIX ... jadi, kalau-kalau komentar ini membantu Anda untuk memutuskandate
:)sumber
view
dari padavi
,view
membuka hanya baca secara default.atime
,mtime
, danctime
: unix.stackexchange.com/a/91200/74190 . Selain itu, Ext4 dan sistem file lainnya tampaknya menyimpan tanggal pembuatan file - mungkin itu sesuatu yang dapat Anda manfaatkan (jika menggunakan salah satu dari sistem file itu).-delete
operator untuk (GNU) find. Anda dapat mengganti| xargs rm {} \;
dengan-delete
dan tidak akan terjebak dengan aturan mengutip atau -tidak menjalankan-jika-kosong.Menggunakan
-d
pilihan untuk menentukan frasa:sumber
Entri lain untuk "cara mengelola file log Anda secara masuk akal" ....
Anda bisa melihat logrotate yang seharusnya menjadi bagian dari kebanyakan distribusi Linux. Itu dapat mengelola penghapusan dan kompresi. Banyak daemon Linux menggunakan ini, sehingga Anda dapat melihat beberapa contoh file konfigurasi.
Sedikit lebih sederhana rotatelogs yang menangani bagian rotasi, tetapi tidak melakukan penghapusan (Anda
find ... -delete
akan melakukan itu.sumber