回答:
これに使用するのに最適なツールはおそらくダンプです。これは標準のLinuxツールであり、ファイルシステム全体を提供します。私はこのようなことをします:
/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz
これにより/のファイルシステムダンプが実行され(他のマウントをダンプする必要がないことを確認してください!)、gzipで圧縮してリモートサーバー(backupserver.example.com)にsshし、/ backup /に保存します。後でバックアップを参照する必要がある場合は、復元を使用します。
restore -i
もう1つのオプションは、ダンプにアクセスできない場合、tarを使用して次のようなことを行うことです。
tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .
ただし、tarはファイルシステムの変更も処理しません。
mount
)がない限りです。
-bash: /sbin/dump: No such file or directory
sudo apt-get install dump
.gz
ファイルを使用してどのように復元しますか?あなたの答えにそれを追加してください。本当に役立つでしょう。
LinuxからLinuxにバックアップしたい場合、ダンプを使用しません。バックアップファイル内の何かにアクセスする必要があるときに不便だからです。ほとんどの場合、rsync
SSH を介してシステム全体のバックアップを行うだけで十分です。
rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder
これにより、すべてが重要になり、追加の手順なしでバックアップを参照できます。
--delete
これを同じバックアップフォルダに複数回実行している場合は、rsyncのオプションを追加できます。この場合、ソースパスの末尾がでないことを確認してください。そうしないと/*
、このオプションはソースディレクトリのサブディレクトリ内のファイルにのみ影響しますが、ソースディレクトリ内に直接存在するファイルには影響しません。
上記のコマンドをpehrsから使用していますが、ftp用に変更されています。Crontabサンプル:
30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x
upload.xには、ftp認証情報とアップロードのルールが含まれています。
open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit
注1:宛先が再接続を試行して到達できない場合、lftpによりCPU使用率が高くなることがあります。そのような場合、多くのホスティングVPSがリセットされる可能性があるため、CPU負荷を監視してlftpプロセスを強制終了し、ホスト所有者によるサーバーのシャットダウンを防ぐことをお勧めします。プロセスlftp(およびdropbox)の負荷平均> 1.33の例。残念ながら、誰かのおかげで、初期コードのソースを覚えていません。
クロンタブ */5 * * * * /home/cms/cron/loadmon.sh
#!/bin/bash
FROM_EMAIL_ADDRESS=cms
trigger=1.33
load=`cat /proc/loadavg | awk '{print $1}'`
response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
killall dropbox lftp
nice -n 19 sh /cms/.dropbox-dist/dropboxd
sar -q | mailx -s "High load on server - [ $load ]" r***s@gmail.com
fi
注2:ダンプユーティリティは、OpenVZ VPSまたはその他の仮想サーバーでは機能しない場合があります。