Pertanyaan Bagaimana mencegah diri saya secara tidak sengaja menghapus / mengganti file?


Saya menggunakan Ubuntu 10.04. Saya memiliki direktori besar dengan (banyak sub-direktori) dan file data yang saya gunakan cukup sering dalam skrip saya. Saya ingin memastikan saya tidak pernah secara tidak sengaja menghapus / menimpa / mengubah salah satu file / direktori di direktori super ini.

Bagaimana saya bisa melakukannya?


2
2017-09-12 07:55


asal


Pertimbangkan untuk menggunakan kontrol versi seperti git. - Sathya♦


Jawaban:


Sebagian besar dipesan dengan mengurangi perlindungan dan meningkatkan kenyamanan:

  • Simpan file pada media yang hanya bisa dibaca secara fisik seperti CD-ROM.

  • Simpan file pada sistem file terpisah yang Anda pasang hanya-baca.

  • Jika Anda adalah administrator, buat pengguna lain dan buat file-file ini dimiliki pengguna lain.

  • Gunakan FUSE bindfs (Paket Ubuntu bindfs) untuk membuat tampilan read-only dari pohon direktori, dan arahkan skrip Anda pada tampilan read-only ini:

    bindfs -p a-w /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    
  • Buat pohon direktori hanya-baca dengan chmod a-w /path/to/tree.

  • Buat salinan pohon dengan file yang tertaut keras dan arahkan skrip Anda ke salinan. Kemudian skrip Anda mungkin masih memodifikasi file yang ada, tetapi jika mereka membuat, menghapus atau mengganti file, itu hanya akan mempengaruhi salinan.

    cp -al /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    

Saya menyarankan Anda menggunakan bindfs. Satu-satunya alasan saya akan melakukan hal lain karena persyaratan Anda adalah jika itu tidak tersedia.

Jika Anda ingin skrip dapat menulis ke pohon direktori, tetapi tanpa memengaruhi file yang sebenarnya, Anda dapat menggunakan sistem file serikat, misalnya funionfs atau unionfs-fuse.


3
2017-09-12 11:04





Tidak ada cara nyata karena tidak peduli apa, Anda akan selalu dapat menghapusnya pada akhirnya.

Namun, Anda bisa mencoba dengan hak akses file. Klik kanan pada direktori dan atur akses folder ke file Access dan atur akses file ke read-only. Setelah itu klik Terapkan Izin ke File Tertutup. Dengan cara ini, Anda harus secara manual membatalkan pengaturan ini ketika Anda memutuskan untuk menghapus file di direktori itu.


2
2017-09-12 08:07



+1 ACL Hanya-baca adalah solusi yang jelas dan paling bersih. - paradroid


Anda bisa rsync direktori ke yang lain dan gunakan --link-dest untuk membuat tautan keras sehingga mereka tidak mengambil ruang ekstra.

Artikel yang bagus adalah Time Machine untuk setiap Unix di luar sana.


1
2017-09-12 08:34





Untuk berbuat salah adalah manusia. Saya pernah menghapus file penting karena saya baru saja bangun dan saya masih mengantuk (tidak ada mabuk) :) Untungnya, itu terjadi lama setelah saya mempelajari beberapa trik yang membantu mengurangi dampak negatif dari tindakan konyol tersebut. Di sini mereka:

  • selalu membuat backup, secara berkala pastikan bahwa backup memang berisi apa yang seharusnya mereka isi, untuk menghindari situasi ketika Anda kehilangan file, cobalah untuk mengembalikannya dari cadangan dan temukan bahwa untuk beberapa alasan itu tidak ada dalam cadangan
  • gunakan kontrol versi
  • menggunakan sistem akuntansi seperti inotify, ini akan membantu Anda melacak perubahan sistem file

Dari insiden itu saya telah membuat aturan tambahan: "Jangan pernah menyentuh komputer saat masih mengantuk".


0
2017-09-12 14:44