Menggunakan cronjob untuk membersihkan / tmp

11

Apakah aman menggunakan skrip bash dan cronjob untuk dikosongkan /tmpsecara otomatis, atau haruskah saya melakukan ini secara berbeda?

Jochem Kuijpers
sumber

Jawaban:

13

/tmpdibersihkan pada setiap reboot sistem, tetapi untuk sistem yang tidak dapat di-reboot sering, dan khususnya jika satu-satunya tujuan adalah membersihkan /tmpskrip dapat dibuat untuk membersihkannya.

Tidak ada proses yang harus menyimpan data penting di sana, tetapi penting bahwa Anda dapat membersihkan /tmptanpa mengganggu proses penulisan data tmp.

Saya rekomendasikan untuk menggunakannya tmpreaper.

Anda dapat menginstalnya dengan sudo apt-get install tmpreaper.

Dari halaman manual:

tmpreaper secara rekursif mencari dan menghapus file dan direktori kosong yang belum diakses selama beberapa detik. Biasanya, ini digunakan untuk membersihkan direktori yang digunakan untuk ruang penyimpanan sementara, seperti "/ tmp". Silakan baca bagian PERINGATAN dari manual ini.

Penggunaan biasanya melibatkan memanggil tmpreaperdi /tmpdengan argumen waktu spec. Argumen spek waktu dapat berupa apa saja mulai dari dberhari-hari, hberjam-jam, mmenit, atau sdetik.

Silakan gunakan --testuntuk mengeringkan lari dan dapatkan hasil dari hasilnya sebelum Anda benar-benar menjalankan perintah. Itu akan memberi Anda gambaran tentang apa yang akan dihapus sebelum Anda benar-benar melakukan perubahan apa pun pada sistem file.

Bruno Pereira
sumber
Terima kasih! Untuk sepenuhnya menjawab pertanyaan saya, dapatkah Anda menjelaskan mengapa ini lebih baik daripada menggunakan penghapusan rekursif sederhana?
Jochem Kuijpers
1
Ini bukan, itu hanya lebih mudah digunakan dan argumen yang digunakan lebih dimengerti. Sederhana rm -rfpada daftar file yang dikembalikan oleh findakan melakukan pekerjaan itu juga. Ini "hanya cara lain", bahkan tidak mengatakan yang terbaik, hanya yang saya gunakan pada server yang saya setup.
Bruno Pereira
tmpreapersepertinya alat yang bagus, layak digunakan --testdan --showdeletessaat pengujian.
RichVel
3

Coba tambahkan cronjob yang dijalankan

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Ini akan menghapus semua file yang lebih lama dari 5 hari.

turbophi
sumber