システムバックアップスクリプト
Linuxサーバーのシステムバックアップスクリプトを書いてみた
bashは触り始めで冗長なコーディングしてると思うんだけど、一応目的は果たせたので。
#!/bin/bash backup_dir_etc="/etc" backup_dir_home="/home/hoge" work_dir="/tmp/backup" #別ホストのHDD to="/mnt/share/LinuxBackup" #既存のバックアップファイルがあれば削除 dates=`date +%Y%m%d` if [ -r ${work_dir}/backup_`date --date ' 1 days ago ' +%Y%m%d`.tar.gz ] ;then rm ${work_dir}/backup_`date --date ' 1 days ago ' +%Y%m%d`.tar.gz &>/dev/null [ $? -eq 0 ] && echo "昨日のファイルを削除しました" || echo "削除できませんでした"; fi #etcのバックアップ cd ${backup_dir_etc} tar czf ${work_dir}/tmp/backup_etc.tar.gz ./ &>/dev/null if [ $? -eq 1 ] ;then echo "/etc バックアップ作成に失敗" exit fi #homeのバックアップ cd ${backup_dir_home} tar czf ${work_dir}/tmp/backup_home.tar.gz ./ &>/dev/null if [ $? -eq 1 ] ;then echo "home バックアップ作成に失敗" exit fi #まとめる cd ${work_dir} tar czf ${work_dir}/backup_${dates}.tar.gz ./tmp &>/dev/null if [ $? -eq 1 ] ;then echo "バックアップパッケージ作成に失敗" exit fi #転送 scp ${work_dir}/backup_${dates}.tar.gz ${to}
こいつをcronで三日に一度でも実行してやればひとまずデータロストする事はなさそう。
ちなみに/etcの中身はroot権限がないと触れないファイルが沢山あるので
このスクリプトの所有者をrootに変更して、アクセス権限を700にして実行するのが良い。