Linux运维 第二阶段 (十四) 备份与恢复
常见的系统故障排除(经常备份源文件,尽量借助于工具):
1、 确定问题的故障特征
2、 重现故障
3、 使用工具收集进一步信息
4、 排除不可能的原因
5、 定位故障,从简单的问题入手,一次尝试一种方式
可能会出现的故障:
1、 管理员密码忘记(开机进grub菜单时按e进入kernel一行再按e在最末处输入single或s设置成单用户模式即可)
2、 系统无法正常启动:
grub损坏(MBR损坏,grub配置文件丢失);系统初始化故障(某文件系统无法正常挂载,驱动不兼容)
MBR损坏,解决:借助别人的主机修复;光驱引导,使用紧急救援模式
#grub
>find (hd0,0)/
>root (hd0,0)
>setup (hd0)
>quit
#sync
#reboot
grub配置文件丢失,解决:
>find (hd0,0)/
>root (hd0,0)
>kernel /vmlinuz-<TAB>
>initrd /initrd-<TAB>
>boot
3、/etc/rc.d/rc[3|5].d/s99local-->../rc.local(/etc/rc.d/rc.local,此文件中的命令若不正确,语法错误或逻辑错误也会导致系统无法正常启动)
4、默认级别设为0或6,解决:进入单用户模式,编辑/etc/inittab
5、senmail配置文件时间戳检查无法通过,解决:单用户模式中关闭该服务;启动时不停按i键进入交互式模式
6、误删/bin/bash,解决:光盘引导进入紧急救援模式
#mount /dev/cdrom /media
#ls /media/Servers | grep bash
#rpm -ivh --replacepkgs --root /mnt/sysimage bash- 3.2-24.el6.x86_64.rpm
#chroot /mnt/sysimage
若误删一些其它命令,如/sbin/mingetty等,可进入单用户模式,挂载光盘镜像,重新安装
6、 环境变量PATH破坏,解决:
重新指定:#export PATH= /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
或重新启用另一终端再登录
或用命令时使用绝对路径#/bin/ls /usr/bin(找到vim)
#/usr/bin/vim /etc/profile
以上是学习《马哥网络视频》做的笔记。
一、1、linux系统重要数据:/root/,/home/,/etc/,/var/spool/mail/,/boot/,/var/lib/mysql
apache备份数据:/etc/httpd/conf/httpd.conf,/var/www/html/,/varlog/httpd,以上rpm包安装方式的重要数据;/usr/local/apache2/conf/httpd.conf,/usr/local/apache2/htdocs/,/usr/local/apache2,以上是源码包安装的apache重要数据。
mysql备份数据:/var/lib/mysql,rpm包数据库内容;/usr/local/mysql/data/源码包数据库内容。
2、备份策略:
》完全备份:恢复数据快,关键服务器整盘完全备份,搭设另一台一模一样的服务器;
》增量备份:优:备份数据较少,耗时较少,占用空间较少;缺:数据恢复麻烦。过程:先进行一次完全备份;与完全备份相比较只备份有差异的数据;第二次与第一次增量备份的数据比较,只备份有差异的数据;第三次与第二次增量备份数据比较,以此类推。
》差异备份:既不像完全备份一样把所有数据都备份,也不像增量备份数据恢复那么麻烦;缺:随着时间的增加,变动的数据越来越多,占用空间大,备份缓慢。过程:先进行一次完全备份;之后的每次差异备份都与完全备份数据比较;恢复时先恢复完全备份的数据,再恢复差异备份的数据。
二、》#dump 选项 备份之后的文件名 源文件或目录
-[0-9] 0指完全备份,1-9为增量备份级别。注:只有备份整个分区或整块硬盘时才能支持1-9增量备份级别,如果只是备份文件或目录,只能用0级别。
-f 接备份之后的文件名
-u 备份成功之后把备份时间记录在/etc/dumpdates文件中,备份文件或目录不能用此选项
-v verbose
-j 调用bzlib库压缩备份文件,格式为bz2,默认压缩等级为2
-W 显示允许被dump的分区备份等级及备份时间
注:dump差异备份,先使用0级别完全备份一次,以后的每次备份都使用1级别。
例:#dump -0uj -f /root/boot.bak.bz2 /boot
#cat /etc/dumpdates
#dump -1uj -f /root/boot/bak1.bz2 /boot (若数据发生变化,使用1级别的增量备份,若后续的数据还发生变化,照样可以继续使用2-9级别增量备份
#dump -W (备份时若没写-u选项,此命令不会显示
例:#dump -0j -f /root/etc/bak.dump.bz2 /etc/ (文件或目录仅能使用0级别
》#restore 模式 选项
-C 比较备份数据和实际数据的变化,若实际数据中的现有数据发生变化,-C可检测到,若实际数据中新增了数据,-C不能检测到变化
-i interactive
-t 查看模式
-r restore
选项 -f 后接备份文件名
例:#touch /boot/abc
#restore -C -f /root/boot/bak.bz2(检测不到
#mv /boot/vmlinuz…….img /boot/vmlinuz…….img.bak
#restore -C -f /root/boot.bak.bz2 (可检测到变化
例:#restore -t -f /root/boot.bak.bz2
#restore -r -f /root/boot.bak.bz2 (恢复前先创建一个测试目录,否则会直接恢复到源目录下
#restore -r -f /root/boot.bak1.bz2 (还原增量备份的数据
三、备份工具: dd
#dd if=输入文件 of=输出文件 bs=数据块 count=数量
if (定义输入数据的文件,也可以是输入设备
of (定义输出数据的文件,也可以是输出设备
bs (定义数据块的大小,一冷色性读取或写入多少字节,默认512byte
count (指定bs的数量
例:#dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak (备份文件
例:#dd if=/dev/sda1 of=/tmp/boot.bak (分区备份为文件
#dd if=/tmp/boot.bak of=/dev/sda1 (恢复
例:#dd if=/dev/sda1 of=/dev/sdb1 (分区备份至另一分区
#dd if=/dev/sdb1 of=/dev/sda1 (恢复
例:#dd if=/dev/sda of=/dev/sdb (整盘备份
#dd if=/dev/sda of=/tmp/disk.bak (磁盘备份成文件
例:#dd if=/dev/cdrom of=/tmp/cd.iso (制作光盘iso镜像
#mkdir /mnt/cd
#mount -o loop /tmp/cd.iso /mnt/cd
例:#dd if=/dev/zero of=/tmp/testfile bs=1M count=10 (制作指定大小的文件
注:dd在进行整盘复制时,类似ghost工具,dd复制出的硬盘数据要比ghost稳定得多,缺点耗时长。
注:本文由互联网收集整理(51CTO、360DOC、chinaunix、百度百科、兄弟连免费视频等)。