CentOSで自宅サーバー構築(https://centossrv.com/)のサイトを元にサーバー内のデータをバックアップするスクリプトを組んでいる
cronで動かしているのだが、エラーメールが飛んできたり極端にバックアップ容量が少なかったりとバックアップがうまく取れていなそうだったので原因を探った
原因
コマンドでカチカチ調べていたら、夜中に実行したバックアップが朝になっても終わっていなかったことに気づき、リソースまわりを調べてみたところバックアップの保存先が「/」直下になっていたため、容量が足りなくて失敗していたようだ
df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 485M 0 485M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 51M 446M 11% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/VolGroup-lv_root 18G 17G 0 100% / /dev/vdb 79G 314M 75G 1% /data /dev/vda1 477M 220M 228M 50% /boot tmpfs 100M 0 100M 0% /run/user/1000
バックアップスクリプトでは、以下のように保存先が設定されていた
vi backup.sh # バックアップ先ディレクトリ名 BACKUPDIR=/backup mkdir -p ${BACKUPDIR} (省略) # バックアップ実行 logger -t `basename ${0}` "backup started." TMPBACKUPTO=/tmp/backup
対策
「/」は容量が足りないので、BACKUPDIRとTMPBACKUPTOのディレクトリを変更する
先ほどのdfの結果から、/dataは容量に余裕がありそうなので以下のように変更した
vi backup.sh # バックアップ先ディレクトリ名 BACKUPDIR=/data/backup mkdir -p ${BACKUPDIR} (省略) # バックアップ実行 logger -t `basename ${0}` "backup started." TMPBACKUPTO=/data/tmp/backup
後日バックアップが取得出来ていることが確認できた
また、dfの結果も以下のように問題なさそうだった
df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 485M 0 485M 0% /dev tmpfs 496M 4.0K 496M 1% /dev/shm tmpfs 496M 51M 446M 11% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/VolGroup-lv_root 18G 12G 4.8G 71% / /dev/vdb 79G 445M 75G 1% /data /dev/vda1 477M 220M 228M 50% /boot tmpfs 100M 0 100M 0% /run/user/1000 tmpfs 100M 0 100M 0% /run/user/0
そもそもディスク容量を監視してメールで通知するようにしてれば気づいたのではと思ったので、下記サイトを参考にさせていただいてcron.dailyにスクリプトを登録しました
閾値80%を越したらrootにメールするよう設定しときます
https://www.rep1.co.jp/staff/200vcxg/217rav/df_lcd_-linux_command_dictiona.htm
コメント