Tips Linux: File Sudah Dihapus Tapi Free Space Disk Tidak Berubah

Jika disk server sudah mencapai threshold tertentu(misalnya 90%), 
maka admin server tersebut harus melakukan cleansing dengan cara 
menghapus atau memindahkan folder/file yang besar. 
Untuk mengetahui folder yang memakai disk usage terbesar, cek terlebih dahulu 
menggunakan command du.

Jika sudah menemukan folder yang besar, cek file di dalamnya dengan
menggunakan command:
ls -lSh | more
untuk mengurutkan file dari size yang terbesar.

Jika di server ada partisi lain yang spacenya masih besar, 
pindahkan folder atau file yang besar ke partisi tersebut.
Tapi jika hanya ada 1 partisi, maka folder/file yang besar harus di hapus.

Berikut hal yang harus diperhatikan sebelum menghapus file di suatu folder:

1. Jangan menghapus file log yang aktif seperti error.log, access.log,
    messages, maillog,dll. 
    Karena bisa menyebabkan error pada aplikasi atau sistem.
2. Jika file log yang sudah di rotate ukurannya besar, compress file tersebut
    misalnya dengan command gzip yang secara otomatis 
    menghapus file asli jika sudah selesai di compress.
    Atau enable opsi compress di konfigurasi logrotate.
3. Minta izin user untuk konfirmasi menghapus file yang besar

Jika sudah dapet izin dari user, hapus file yang besar tersebut.
Namun ada case dimana file sudah di hapus, tapi free space disk tidak berubah.
Karena  file tersebut ternyata masih tersimpan di disk, sehingga harus di truncate.

Berikut cara untuk truncate file yang sudah di delete:

1.  Cek PID dan FD dari file sudah di delete dengan menggunakan command
lsof -a +L1 *mountpoint*
misalnya file yang di delete ada di partisi /
lsof -a +L1 / 
Contoh ouputnya adalah sebagai berikut(note: sebenarnya lebih panjang dan,
tapi di cut karena gak muat dalam  1 baris):
COMMAND   PID     USER   FD    DEVICE  SIZE/OFF     NODE NAME
httpd     23862 apache   2w     8,2    1153433629   /var/log/error_log-20190701 (deleted)
Dari output di atas, file yang di delete adalah /var/log/error_log-20190701, PID 23862 dan FD 2

2. Truncate file /var/log/error_log-20190701 dengan command berikut:
$ echo > /proc/pid/fd/fd_number
Dari contoh di atas, maka commandnya adalah:
echo > /proc/23862/fd/2
Kemudian cek freespace disk dengan menggunakan command df -h 
untuk memastikan bahwa filenya sudah di truncate.

Komentar

Postingan populer dari blog ini

Cara Mengatasi Error "illegal attribute type" Koneksi PHP ke Database Oracle

Cara Mengatasi Print File Excel Tidak Ada Garis Bordernya

Cara Mengatasi HP Realme 5 Pro Black Screen