Script untuk menghapus file yang lebih dari 6 bulan

12

Menyiapkan pekerjaan cron sebulan sekali untuk memulai skrip.

skripnya adalah memutar file setiap bulan karena terlalu besar dan mengganti nama yang lama. ketika sebuah file lebih dari enam bulan saya ingin itu dihapus.

Ingin menjalankan skrip ini sebulan sekali. Apakah mungkin menghapus yang lama?

Tolong beri tahu saya jika itu tidak cukup jelas.

scott marriott
sumber
11
Kenapa tidak pakai saja logrotate?
Michael Hampton
@ scottmarriott ya, Tuan Hampton benar, fungsionalitas yang Anda uraikan pada dasarnya adalah hal yang tepat dilakukan oleh logrotate.
Bratchley
Ya saya baru saja melihat logrotate dengan masuk akal, semua bersorak
scott marriott
@MichaelHampton Anda harus menjawabnya.
evilsoup

Jawaban:

20

Anda bisa mulai dengan ini:

find /your/file -mtime +182 -exec rm {} +

Di mana +182kuantitas hari.

ramonovski
sumber
Terima kasih untuk itu, mungkin bermain dengannya, tapi saya mungkin logrotate mungkin pilihan terbaik
scott marriott
@jordanm ada ide mengapa ini mungkin tidak berhasil?
scott marriott
ApplicationServer / logs / TestClone01 $ ls -ltr total 3320 1048458 13 Des 09:46 SystemOut_12.12.13_09.46.29.log 28 Mei 12:44 SystemOut.log.2013-05-28-12: 44: 52 71 30 Mei 08: 57 SystemOut.log.2013-05-30-08: 57: 22 48432 30 Mei 09:16 SystemOut.log no_env): / usr / websphere6 / was61TE_LV2 / ApplicationServer / logs / TestClone01 $ find SystemOut.log -mtime +1 - exec rm {} + find: 0652-083 Tidak dapat menjalankan :: File atau direktori dalam nama path tidak ada.
scott marriott
Saya mengubah jumlah hari menjadi 1
scott marriott
@scottmarriott Tidak semua versi finddukungan +/-untuk -mtime. OS dan versi findapa yang Anda miliki?
jordanm
2

Anda bisa menggunakannya logrotate. Ini sudah tersedia di sebagian besar sistem Linux, dan banyak paket sudah memiliki skrip logrotate yang sudah dikonfigurasi, atau Anda dapat mengubah atau menulisnya sendiri.

Michael Hampton
sumber