Kami memiliki server web internal (tervirtualisasi, hosting ReviewBoard, tetapi tidak super relevan) dan kami memiliki mode kegagalan yang relatif konsisten dengan gagal mount NFS yang menyebabkan / mengisi. Distro adalah Ubuntu (jangan tanya) jika suatu solusi tergantung pada distribusi yang berbeda, itu akan lebih lambat untuk diimplementasikan.
Pencadangan sedang dilakukan ke / mnt / cadangan /, yang seharusnya ke NFS mount ke sistem lain. Sayangnya, ketika mount gagal, atau turun, backup dilakukan pada sistem file root, yang seperti yang Anda bayangkan tidak butuh waktu lama sebelum / penuh, dan kemudian layanan mulai gagal.
Sejumlah solusi yang mungkin telah dibahas.
Monitor / mnt / backup dan pastikan itu bukan root. Mungkin pekerjaan cron.
Gunakan / mnt / protected / backup, dan mount / protected terlebih dahulu ke sistem file kecil, mungkin loop mount ke file lokal sehingga sangat kecil kemungkinannya untuk gagal.
Chmod a-rwx / mnt / backup (titik mount sistem file root). Saya tidak yakin apakah pemasangan pada direktur yang dilindungi akan berfungsi, saya pikir itu berhasil.
Pada pohon yang terpasang, buat direktori yang disebut "Cadangan", lalu tautan lunak "ln - s / mnt / cadangan / Cadangan / Cadangan". Menggunakan / Cadangan untuk cadangan akan gagal kecuali / mnt / cadangan dipasang, karena pohon lokal tidak mengandung sub-direktori.
Melakukan pemeriksaan bahwa direktori telah dipasang dengan benar di skrip cadangan.
Saya tertarik dengan umpan balik tentang pendekatan ini, pro kontra atau teknik tambahan yang digunakan orang sebagai cara standar untuk melindungi sistem file root dari jenis nastiness ini.
Solusi yang paling tahan kesalahan adalah membuat titik mount tidak dapat ditulis. Ini akan menjadi solusi Anda # 3. Namun ada satu langkah tambahan yang harus Anda lakukan.
chattr +i /mnt/backups
. Ini karena walaupun tanpa izin, root masih bisa menulis ke direktori. Denganchattr +i
(set flag yang tidak dapat diubah) bahkan root tidak dapat menulisnya. Setelah mount sudah terpasang, izin tidak masalah karena izin akan berada di direktori jarak jauh, bukan yang lokal.sumber
encfs
sistem file sekering. Ini memberikan kesalahan:fusermount: user has no write access to mountpoint
Apa kata ewwhite. Juga, beberapa pemantauan tambahan untuk kesehatan sistem dasar tidak akan menjadi ide yang buruk.
Sesuatu seperti Monit dapat memeriksa untuk melihat seberapa banyak ruang yang tersisa . Jika Anda ingin melakukan pemantauan sistem sepenuhnya, Anda dapat melihat Nagios, tetapi Monit ringan dan akan melakukan hal-hal mendasar.
Karena Anda menggunakan Ubuntu, Monit sudah dalam repo, sehingga Anda dapat melakukan "sudo apt-get install monit", kemudian mulai melihat file konfigurasi untuk mengirimnya ke peringatan di tempat yang tepat, memantau layanan yang tepat, dll. Berikut ini tutorial singkatnya .
sumber
Berikut ini adalah satu liner yang dapat Anda jalankan sebagai pekerjaan cron, mengasumsikan mount yang dimaksud ada di fstab:
sumber
Untuk solusi jangka panjang: Tidak yakin bagaimana melakukan ini di Ubuntu (saya RH centric) atau apakah itu layak sementara (jika Anda hanya memiliki satu mesin) tetapi metodologi yang telah bekerja untuk kami selama BANYAK tahun adalah membuat logika terpisah volume, sistem file, bahkan grup volume pada mesin server. Jadi sebagai praktik standar kami membuat volume logis LVM untuk /, / tmp. / usr, / usr / local, / opt, / home, / var, swap space dan partisi terpisah untuk / boot. Pendekatan ini mempersulit sistem file untuk mengisi dan menonaktifkan sistem. Sebenarnya pendekatan ini akan membuat hampir tidak mungkin untuk mengisi sistem / file. Anda masih perlu menonton / tmp, / var tentu saja. Jika kita perlu menyimpan data maka kita membuat grup volume yang sama sekali berbeda untuk itu. Pendekatan ini juga memiliki manfaat lain, memperluas sistem file sesuka hati, memindahkannya, membuat yang baru, dll.
sumber