尊旭网
当前位置: 尊旭网 > 知识 >

远程备份

时间:2024-12-25 22:12:57 编辑:阿旭

Linux自动远程备份一个文件夹所有文件至一台服务器上的配置命令步骤??

1.备份Linux系统  window系统在运行状态下,我们是无法将文件拷贝出来的,那么在Linux下呢?她的文件结构式一种树型结构。而且在系统运行的时候我们可以进行打包所有系统文件。特别要说的在Linux的root账户具备系统上的任何操作,这也是为什么要创建一个比较低级别的用户权限来防止系统误操作导致系统崩溃的晕因了。下面看备份命令。  #切换到root  sudosu  #进入系统根目录  cd/  #执行打包命令  tarcvpzflinuxbackup.tgz--exclude=/proc--exclude=/lost+found--exclude=/linuxbackup.tgz--exclude=/mnt--exclude=/sys/  命令解释:  tar:linux常用的打包程序  cvpzf:式tar的参数,c-创建新文档  v-处理过程中输出相关信息  p-表示保持相同的权限  z-调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩  f-对普通文件操作  linuxbackup.tgz:要打包成的文件名  --exclude=/proc:排除/proc目录,不打包这个目录,后面也同理,记得排除自身打包的文件名  /:表示打包linux根目录所有文件,当然了排除的文件不包含在内  整个过程理解起来意思就是,创建一个新的文件名linuxbackup.tgz压缩文件,它保存式从排除了指定目录后的文件,并且保存原有的权限设置,这里必须记下你排除的目录,恢复的时候需要手动创建。具体哪些目录要排除在外,这个根觉不同的环境和工作需要进行选择就是了。执行后等待一定时间就可以了,将这个linuxbackup.tgz拷贝到其他地方即可,备份完成了。  重点指出:在打包过程中不要进行任何的操作,否则会修改某些文件,在备份完后tar会提示错误。恢复也是一样。  2.恢复Linux系统  按照上面的方式备份完系统就可以使用该方法恢复你的备份文件了。如果你的系统崩溃了无法进入系统那么你可以借助引导CD或者其他引导系统进入,如果你可以进入系统,首先拷贝该备份文件到/目录下,然后执行下面命令进行恢复系统:  #提升到root  sudosu  #进入根目录  cd/  #解压恢复系统  tarxvpfzlinuxbackup.tgz-C/  等执行完后,别急着重启系统,要记得创建你在备份时候排除的目录,手动创建,例如上面我们排除,我们需创建  mkdirproc  mdkirlost+found  mkdirmnt  mkdirsys  这个时候你就可以重启系统了。恢复完成了。


如何在Linux服务器中备份

linux系统下使用脚本定时备份数据库,代码如下:
#!/bin/bash
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第
#18行,则默认以tag的方式备份
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can’t Backup!" >> $LogFile
else
case $BackupMethod in
mysqldump*)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName > $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy*)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
;;
esac
fi
echo "-------------------------------------------"
echo
#lftp -f lftp.sh 如果有FTP可同时上传ftp中。
再利用crontab命令生成/var/spool/cron/root 文件:
#crontab –e
//打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令
//m h dom mon dow command
//具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)
//如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本)