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.


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.