Tag

Ada kalanya saya harus memastikan bahwa satu buah file pada sebuah folder tidak sedang diakses oleh aplikasi lainnya. Hal ini bisa saja terjadi sebagai permisalan pada kasus pemindahan folder yang menjadi tempat penyimpanan data aplikasi kritis.

Misalkan folder yang akan dipindahkan pada studi kasus tulisan sebelumnya di /var/lib/postgresql/8.4/main, maka untuk mengetahui bahwa tidak ada aplikasi yang sedang mengaksesnya adalah dengan menggunakan perintah lsof +D.

# lsof +D /var/lib/postgresql/8.4/main
....
postgres 17646 postgres 98u REG 104,6 262144 1655079 /home/postgresql/main/base/458755/1349184
postgres 17646 postgres 99u REG 104,6 106496 1655528 /home/postgresql/main/base/458755/2617
postgres 17646 postgres 100u REG 104,6 819200 1655441 /home/postgresql/main/base/458755/1349349
postgres 17646 postgres 101u REG 104,6 114688 1655399 /home/postgresql/main/base/458755/1349356
postgres 17646 postgres 102u REG 104,6 57344 1655193 /home/postgresql/main/base/458755/459205
....

Bisa terlihat dari hasilnya bahwa yang mengakses adalah postgres. Sebaliknya apabila tidak ada yang mengakses maka tidak ada tampilan seperti diatas.

Selain hal tersebut, apabila kita ingin mengetahui file yang terbuka berdasarkan user yang aktif di suatu aplikasi maka bisa menggunakan perintah lsof -u postgres. Pada perintah ini berarti akan ditampilkan file yang diakses oleh user postgres.