Answers:
最好的工具可能是转储,它是标准的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压缩它,然后将其ssh到远程服务器(backupserver.example.com),将其存储在/ backup / 。如果以后需要浏览备份,请使用restore:
restore -i
另一个选择,如果您无权访问转储,请使用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(和保管箱)的平均负载> 1.33的示例。不幸的是,由于有人,我不记得初始代码的来源:
Crontab */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或某些其他虚拟服务器上运行。