VMware服务变更后的无缝迁移策略 5月09日 星期四 15:00 云祺视频号准时直播
vinchin linked
delta 扫码预约直播,观看精彩内容!
closed
logo
关于我们

技术分享

技术分享 Linux备份攻略

Linux备份攻略

2020-08-19

Linux备份攻略
 
备份是相当重要的,做好备份可以把损失降到最低。

一、备份的数据:
 1、主机系统
   与账号和系统设置有关的文件。
   /etc/整个目录   ##因为主机信息参数文件都在/etc下
   /home整个目录   ##这个下面有每个人的主目录
   /var/spoool/mail
     /root
 可选:/boot           ##改变过内核时
    /usr/local 或/opt ##自行安装过其它套件
 2、网络服务器
   注意:网络服务软件的安装有两种情况:系统自带的安装,文件一般下/etc下;自行安装的一般在/usr/local下,当然自行安装还可以更改位置,就具体应用。
   /etc/整个目录  /usr/local/整个目录    ##数据设置文件
 假如此服务器为WWW+MySQL:
   /var/www整个目录
   /srv/www整个目录
   /var/lib/mysql   ##一句话与服务相关的文件
 3、不需要备份的目录
   /dev
     /proc
     /mnt
     /tmp
     也就是说其它的目录可以进行选择的备份。
 二、备份工具
   命令列工具,例如 ``dd’’, ``dump’’, ``cpio’’以及 ``tar’’
   文字型态工具,例如 ``Amanda’’ 及 ``Taper’’
   图形介面的工具,像是``KDat’’
   商业化的备份工具,像是 ``BRU’’ 和 ``PerfectBackup+’’
   1、cpio  用于完整备份,配合与Find命令一起,配合另一块完全用来备份的硬盘
      格式:
      #find / -print | cpio -covB > /dev/st0   ##备份到磁带机
      #cpio -iduv
     #tar -zxvf host.tgz    ##还原
           #tar -zpcvf mysql.`date+%Y-%m-%d`.tgz /var/lib/mysql  ##部分备份
           #tar -N ’2007/4/17’ -zpcvf home.tgz /home     ##备份2007/4/17之后的文件

 三、备份方式:
 考虑下列几点因素:
可携性
- 备份的可携性 (亦即. 从一个 Linux 发行版本或应用 Unix备份然後回存到另外一个; 例如从Solaris 到 Red Hat Linux) 对您而言是否重要 # 如果是,可能想要选择一个命令列的工具 (亦即. ``dd’’,``dump’’, ``cpio’’, 或 ``tar’’),因为您可以相当地确定该工具可以在另一个 *nix 系统上找到。
 无人或自动备份
- 定期自动进行备份而不需人力介入之能力,对您而言是否重要 # 如果是,您可能需要能支援该方案的工具及备份媒体。
使用者友善
- 使用者友善的介面对您而言是否重要 # 如果是,您可能想要选择一个文字或图形介面的工具。商业的应用程式可以提供最简便的介面及技术支援。
 远端备份
- 从远端机器进行备份及回存的能力对您而言是否重要 # 如果是,您可能想要选择命令列或文字模式的工具而不是图形介面(除非您有相当快的网路连结及执行远端 X sessions 的能力)。
网路备份
- 从网路主机进行备份及回存对您而言是否重要 # 如果是,您可能要用一些支援从网路存取备份设备的命令列工具(像是 ``tar’’),或是专用工具程式例如 ``Amanda’’ 或是一些商业工具程式。
 媒体型态
- 备份可以储存在很多不同的媒体,像是磁带,外接式硬碟,ZIP 磁碟,或可读写 CD。考虑售价及可靠性,储存容量,及传送速度。


 备份你的 Linux 系统

 一、我们需要备份什么?
 我的 Linux 系统是基于 Redhat 的Redhat Linux Array.0,同时配置了诸如 MySQL、PHP、Apache 等基础服务,同时又配有 Awstats、MRTG、MT 等应用服务程序,因此,我们需要备份的除了系统本身的重要文件以外,还需要备份数据库、log文件和统计数据文件等。当然另外一项必不可少的就是编译各项服务时的 ./configure 参数,这里就不赘述了。
 二、制定备份文件列表。
 这个步骤就是归纳一下需要备份的目录列表。以下我就依照我所安装的各项服务作了一个简单的list。 一些文件的地址是以我的服务器为标准(以"/"开头),一些则以相对目录来描述(以"./"开头)。
 系统:
 #/etc /usr/local/etc
 包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项。

#/var
 包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、db2 实例配置,等等。

#/home
 包含所有用户的默认用户主目录。这包括他们的个人设置、已下载的文件和用户不希望失去的其他信息。

#/root
 是根(root)用户的主目录。

#/opt
 是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其他软件在默认情况下也安装在这里。
系统中不需要备份的目录:
 
#/proc
 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图。它包括诸如 /proc/kcore 这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。

#/dev
 包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。然而,如果计划还原到一个已安装的 Linux 系统,那么备份 /dev 是没有必要的。
更多关于目录的解释,请查看
Filesystem Hierarchy Standard

Red Hat Linux Overview of File System Hierarchy Standard (FHS)
 MySQL:
 
#/usr/local/mysql
 同时要注意版本的保留,在恢复的时候使用相同的版本(或者相同系列的版本)会减少更多不必要的麻烦,例如 “/usr
 /local/mysql-standard-4.1.7-pc-linux-i686”。
 
#/etc/my.cnf
 MySQL 的配置文件。
Apache:
 
#/usr/local/apache2/logs
 Apache 的 log 文件。这里建议使用 cronolog 来 rotate Apache 的巨大 log。

 
#/usr/local/apache2/conf
 Apache 的配置文件,例如: httpd.conf。还是建议在修改此文本的时候使用“#”号 comment 修改的内容,然后添加需要修改的内容。
PHP:
 
#/usr/local/lib/php.ini
觉得这个就够了。如果你设定了 php 的 error log 文件,当然那个也是需要的。
Movable Type:
 
#./MT-3.0D-full-en_ususr/ 和你的 weblog 目录
 一般来说 blog 不会太大,不介意的话就整个备份一下。当然最重要的是 ./MT-3.0D-full-en_ususr/db/ 文件夹,里面有所有的数据(如果你没有用 MySQL 作为 MT 的数据存储格式的话)。
 Awstats:
 
#/etc/awstats/
 Awstats 的配置文件。诸如:awstats.blog.conf
 
#/var/lib/awstats/
 Awstats 的分析留档文件。 诸如:awstats082004.blog.txt
MRTG:
 
#MRTG 的输出文件夹。内有图片和诸如 12.34.56.78_12.34.56.78.log 的log文件。
三、使用 tar 和 crontab 等简单工具备份。
 以下是使用 tar 的脚本,去掉了多余的说明部分。 您也可以
 点击这里
 下载并修改以适合自己的系统。在脚本中尽量用更多的方法来进行备份。在实际应用中可以将步骤更加简化。更多关于 tar 的参数请看
man tar

 #!/bin/sh
# Date format: 20120626
 DATE=`date -d yesterday +%Y%m%d`
 # MySQL version & directory
 MYSQL_VERSION="4.x.x"
 MYSQL_DIR="/usr/local/mysql/data"
 # MT Blog directory
 MTBLOG_DIR="/path-to-mt/db/"
 # Backup directory & Backup Filelist
 BACKUP_DIR="/path-to-backup/backupfile"
 BACKUP_FILELIST="/path-to-backup/filelist"
 # Backup MySQL
printf "Backup MySQL data directory, please wait...\n"
 tar -zpcvPf $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz $MYSQL_DIR | grep "tar:"
 printf "Done! The new backup file is: $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz\n\n"
 # Backup MT Blog
 printf "Backuping the MT3.0 Weblog data directory, please wait...\n"
 tar -zpcvPf $BACKUP_DIR/MT-db-$DATE.tgz $MTBLOG_DIR | grep "tar:"
 printf "Done! The new backup file is: $BACKUP_DIR/MT-db-$DATE.tgz\n"
 这里引用了
 『Linux 备份与恢复速成指南』中的一个小技巧
 ,将文件列表写入一个文件进行操作。
 查看我的Filelist
 。
以下是一个文件列表的例子:
/etc
 /var
 /home
 /usr/local
 /opt (有时会是空目录)以下解释引自『Linux 备份与恢复速成指南』:
请注意 tar -T(或 files-from)命令不能接受通配符。文件必须明确地列出。上面的例子展示了一种单独地引用文件的方法。您还可以执行脚本来搜索系统,然后建立一个列表。下面就是这样一个脚本的例子:
#!/bin/sh
 cat MyFiles > TempList
 find /usr/share -iname *.png >> TempList
 find /tmp -iname *.iso >> TempList
 tar -cpzMf /path-to-backup/backupfile -T TempList 上面的脚本首先将 MyFiles 中的所有现有文件列表复制到 TempList。然后它执行两个 find 命令来搜索文件系统中匹配某个模式的文件,并将它们附加到 TempList。第一次是搜索 /usr/share 目录树中以 .png 结尾的所有文件。第二次是搜索 /tmp 目录树中以 .iso 结尾的所有文件。在建立好列表之后,tar 然后在文件设备 /dev/st0 (第一个 SCSI 磁带设备)上创建 一个新的归档文件,该文件使用 gzip 格式来压缩,并保留所有文件权限。该归档文件将跨越多个卷。要归档的文件的名称将从 TempList 文件中提取。
四、适用于 log 和数据库的增量备份(incremental backup)。
 对于庞大的 log 或者 数据库文件,每天进行完全备份似乎不是很能合理高效地实现备份工作。所以在较短的时间周期内,适用增量备份(incremental backup)会是一个不错的选择。
 tar 并不是最好的增量备份工具
 tar 并不是最好的增量备份的工具,但是它也可以实现增量备份。
 可以实现这个操作。
简单地介绍一下其原理:
 首先,制作一个完全备份的时间点文件,例如 "full-date"。其中写入某次完全备份的时间点,例如 echo $NOW > full-date。
然后在自定的时间循环期内(例如一周),每次和完全备份时间点(full-date)对比后进行增量备份。
其中最关键的一个语句就是:
tar --newer $full-date -zcpf $BACKUPDIR/$BACKUPFILE-$NOW.tgz $DIRECTOIES其结果就是,在一周中会产生 6 个独立文件,其内容是前一天内新增的内容。
 

 

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 云计算

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载