当前位置:首页 » 网页前端 » ubuntu备份脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ubuntu备份脚本

发布时间: 2022-05-08 14:34:40

① ubuntu 重装怎么备份软件

方式一:

1、在已经安装和配置好的电脑上,不要删除/var/cache/apt/archives目录,执行下面的命令,生成当前安装软件的内容列表
dpkg -–get-selections | grep -v deinstall >
ubuntu.files
2、把ubuntu.files和archives目录中的所有内容都cp到别的机器对应的目录。
3、重装完成后,配置sources.list,执行如下命令
sudo apt-get update
sudo apt-get dist-upgrade
dpkg -–set-selections <
ubuntu.files
sudo dselect
4、按提示,按下 i,然后全部回车即可。

方式二:

1、在重装前要备份安装软件的列表,软件源,用户文件

1)备份已安装软件包列表

dpkg --get-selections >
/home/user/package.selections

2)备份Home下的用户文件夹

如果已经将Home放在额外的分区,这一步就不必了,复制所有用户文件夹下的所有内容到另外的分区,注意要包含隐藏文件(Ctrl+Hide)

3)备份软件源列表,将/etc/apt/文件夹下的sources.list拷贝出来保存即可

2、新系统安装后的恢复:

1)复制备份的Sources.list文件到新系统的/etc/apt/目录,覆盖原文件,并替换(Ctrl+H)文档中的intrepid为jaunty。然后更新软件源(sudo
apt-get update)。

2)重新下载安装之前系统中的软件(如果安装的软件数量比较多,可能会花费较长时间)

sudo dpkg --set-selections /home/package.selections
&& apt-get dselect-upgrade

3)最后将备份的主文件夹(/home/用户名)粘贴并覆盖现有主文件夹

用这个方法可以基本在不丢失现有系统和软件设置的情况下使用全新的Ubuntu系统。

② 怎样备份ubuntu,那些文件重要

我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
备份第一步:打开一个终端,并运行 sudo su(回车后要求输入密码)
第二步:继续在终端中输入 cd /(注意中间有一个空格)
第三步:(开始备份系统)
在终端中输入:
# tar cvpzf Ubuntu.tgz –exclude=/proc –exclude=/lost+found –exclude=/Ubuntu.tgz –exclude=/mnt –exclude=/sys /
让我们来简单看一下这个命令:
'tar' 是用来备份的程序
c - 新建一个备份文档
v - 详细模式, tar程序将在屏幕上实时输出所有信息。
p - 保存许可,并应用到所有文件。
z - 采用‘gzip’压缩备份文件,以减小备份文件体积。
f - 说明备份文件存放的路径, Ubuntu.tgz 是本例子中备份文件名。

③ 如何在ubuntu版本的linux系统命令行备份

在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton G...

④ 如何备份ubuntu引导文件

一种简单的方法:
注意此种方法只能在Ubuntu下操作!
首先确定你的grub正常,并能启动linux
然后启动到Ubuntu,如果你的是IDE硬盘
请运行:
sudo dd if=/dev/hda of=/media/linux.lnx bs=512 count=1
如果你硬盘的被识别为sda ,请运行
sudo dd if=/dev/sda of=/media/linux.lnx bs=512 count=1
然后你可以到/media找到linux.lnx这个文件
将它拷贝到你的win根目录,一般是C:\然后重启Win,修改根目录下的boot.ini 文件。
在这个文件最后增加:
C:\linux.lnx=”Ubuntu"
OK,重启,在启动菜单中选择Ubuntu即可。
把boot.ini和linux.lnx备份到其他盘中,当重装系统后,恢复即可

当然,你也可以参考Ubuntu官方网站的指南: http://wiki.ubuntu.org.cn/Ubuntu%E5%A4%87%E4%BB%BD%E4%B8%8E%E8%BF%98%E5%8E%9F

⑤ ubuntu定时备份指定文件夹或指定文件

用 cron 服务:配置/etc/crontab文件。

⑥ ubuntu环境下怎么备份

从命令行备份
使用 TAR 命令

此法适用于备份用户的主文件夹。打开终端并输入:

tar cvfz output input

使用 split 命令可以使压缩好的镜像分成小块以便存入可移动设备。更多信息请参看: BackupYourSystem/TAR

使用 dd 命令创建磁盘镜像

此法适用于备份整个磁盘。打开终端(在示例中要将 hda 替换成你需要备份的分区)创建磁盘镜像

dd if=/dev/hda1 of=/home/hda1.bin

创建压缩磁盘镜像

dd if=/dev/hda1 | gzip > /home/hda1.bin.gz

我怀疑上述命令是否会产生递归压缩,因为把压缩文件放在了/home目录下,压缩硬盘时再压缩自己,直至塞满整个硬盘。我使用上述命令时只有十几个G的数据压缩了二十几个G都没停止备份 MBR(主引导记录)

dd if=/dev/hda of=/home/hda.boot.mbr bs=512 count=1

恢复 MBR (从 Live CD)

dd if=/mnt/hda1/home/hda.boot.mbr of=/dev/hda bs=512 count=1

从一个磁盘备份到另一个磁盘

dd if=/dev/hda of=/dev/hdb conv=noerror,sync bs=4k

来看以下这个命令

dd -if /dev/hda1 > partitionimage.dd

此命令将备份 "/dev/hda1" (hda1上的第一个分区)。 整个磁盘(包括 MBR)可以作为一个输入“文件”只用 /dev/hda 备份即可。使用以下命令进行恢复:

dd -if partitionimage.dd -of /dev/hda1

可以使用“回送设备”(loopback device)加载这个分区镜像,使得在不破坏现有分区的情况下比较两者的文件版本。

从桌面备份
使用 Simple Backup Suite

Simple Backup Suite 是在 Google Summer of Code 2005 创建的一个程序。你可以在熟悉的
GNOME 环境下选择何时、何地、如何进行备份。 Simple Backup Suite also
也可以做增量备份。在创建初始备份后,只有修改过的文件才会被备份。

增量备份
rsync

Rsync 只更新更改过的文件,甚至只传输那些文件被更改过的部分。这能有效节省网络备份时的带宽。安全起见,两台机子间的传输是通过 SSH 完成的。Rsync在备份用户主文件夹时表现出色。传输到远程计算机的命令是:

sudo rsync --delete -azvv -e ssh /home [email protected]:./backupdirectory

-z 压缩数据 --delete 删除被备份系统上不存在的文件。或许你需要它,或许不需要。 -a 维持文件日期 (也可以用 -t),
递归进入子文件夹 (也可以用 -r), 仅复制软连接本身 (也可以用 -l), 维持文件权限 (也可以用 -p), 维持用户组 (也可以用
-g), 维持文件所有权 (也可以用 -o), 维持设备文件属性 (也可以用 -D). -vv 回显rsync同步进程
了解更多开源相关,去LUPA社区看看吧。

⑦ ubuntu如何备份整个系统

很简单, 你把/home保存了就可以了. 重装系统以后把常用软件安回来, 所有的设置基本都在, 很方便的. 一般没必要想win那样把整个系统都备份了, ubuntu安原生软件很方便的, 手动安回来即可.

备份Ubuntu其实很简单,Ubuntu系统不需要你重新启动系统就可以对系统文件进行读写操作,所以,我们也就可以在系统正在运行中去备份系统了。也不需要什么GHOST软件,一个小小的tar压缩就可以备份系统了。备份系统前,我们要先进行清理工作,把回收站里的垃圾清理掉吧。
下面是备份系统的方法:
然后打开终端,输入以下命令:
1、成为根用户: sudo su
2、转到根目录: cd /
然后,下面就是我用来备份我的系统的完整的命令:
tar -cvpzf /media/sda7/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media /
接着,让我们稍微解释一下:
tar 是用来备份的程序
c - 新建一个备份文档
v - 详细模式, tar程序将在屏幕上实时输出所有信息。
p - 保存许可,并应用到所有文件。
z - 采用‘gzip’压缩备份文件,以减小备份文件体积。
f - 说明备份文件存放的路径, /media/sda7/backup.tgz 是本例子中备份文件名。这个备份文件备份的位置是其它分区,也就是原来的WIN分区中。因为我的根目录的空间不足,所以只有备份在其它的地方了。来看看我们想要包含的目录。我们不想备份所有的东西,因为有些目录是没有多大用处的。确认你不想包含的文件,否则您会得到一个很奇怪的结果。您也不必备份/mnt 目录下的东西,除非您有其他分区挂在它下面或者你坚持要备份。您还必须确保没有任何资源挂在 /media目录下(比如,任何CD或者移动存储介质).否则,剔除/media。
最后一个参数是我们想要保存的目录. 我们想要保存所有的东西,使用 / 作为根目录。

⑧ ubuntu 备份mp的问题

功能说明:备份文件系统。

语 法:mp [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f <设备名称>][-h <层级>][-s <磁带长度>][-T <日期>][目录或文件系统] 或 mp [-wW]

补充说明:mp为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

参 数:
-0123456789 备份的层级。
-b<区块大小> 指定区块的大小,单位为KB。
-B<区块数目> 指定备份卷册的区块数目。
-c 修改备份磁带预设的密度与容量。
-d<密度> 设置磁带的密度。单位为BPI。
-f<设备名称> 指定备份设备。
-h<层级> 当备份层级等于或大雨指定的层级时,将不备份用户标示为"nomp"的文件。
-n 当备份工作需要管理员介入时,向所有"operator"群组中的使用者发出通知。
-s<磁带长度> 备份磁带的长度,单位为英尺。
-T<日期> 指定开始备份的时间与日期。
-u 备份完毕后,在/etc/mpdates中记录备份的文件系统,层级,日期与时间等。
-w 与-W类似,但仅显示需要备份的文件。
-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。

备份命令mp/还原命令restore

mp 可以执行类似 tar 的功能。然而, mp 倾向于考虑文件系统而不是个别的文件。下面是引自 mp 手册文件中的内容:“mp 检查 ext2 文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上……大于输出媒体容量的转储将被划分到多个卷。在大多数媒体上,容量是通过一直写入直至返回一个 end-of-media 标记来确定的。”

配合 mp 的程序是 restore ,它用于从转储映像还原文件。

restore 命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。可以从完全或部分备份中还原单独的文件或者目录树。

mp 和 restore 都能在网络上运行,因此您可以通过远程设备进行备份或还原。 mp 和 restore 使用磁带驱动器和提供广泛选项的文件设备。然而,两者都仅限用于 ext2 和 ext3 文件系统。如果使用的是 JFS、Reiser 或者其他文件系统,您将需要其他的实用工具,比如 tar 。

使用 mp 执行备份

使用 mp 执行备份是相当简单的。下面的命令执行一个完全 Linux 备份,它把所有 ext2 和 ext3 文件系统备份到一个 SCSI 磁带设备。

mp 0f /dev/nst0 /boot

mp 0f /dev/nst0 /

在这个例子中,系统中有两个文件系统。一个用于 /boot,另一个用于 / ,这是常见的配置。它们必须在执行备份时单独地引用。 /dev/nst0 引用第一个 SCSI 磁带驱动器,不过是以非重绕的模式引用。这样确保各个卷在磁带上一个接一个地排列。

mp 的一个有趣特性是其内置的增量备份功能。在上面的例子中, 0 表示 0 级或基本级备份。这是完全系统备份,您要定期执行以保存整个系统。对于后续的备份,您可以使用其他数字(1-9)来代替 0,以改变备份级别。1 级备份会保存自从执行 0 级备份以来更改过的所有文件。2 级备份会保存自从执行 1 级备份以来更改过的所有文件,以此类推。使用 tar 和脚本可以执行相同的功能,但要求脚本创建人员提供一种机制来确定上次备份是何时执行的。 mp 具有它自己的机制,即它在执行备份时会输出一个更新文件(/etc/mpupdates)。这个更新文件将在每次执行 0 级备份时被重设。后续级别的备份会保留它们的标记,直至执行另一次 0 级备份。如果您在执行基于磁带的备份, mp 会自动跟踪多个卷。

跳过文件

标记将被 mp 跳过的文件和目录是可以做到的。实现此目的的命令是 chattr ,它改变 ext2 和 ext3 文件系统上的扩展属性。

chattr +d <filename>

上面的命令向文件添加一个标记,让 mp 在执行备份时跳过该文件。

使用 restore 来执行还原

要还原使用 mp 保存的信息,可以使用 restore 命令。像 tar 一样, mp 能够列出( -t )归档文件的内容,并与当前文件作比较( -C )。使用 mp 时必须小心的地方是还原数据。有两种非常不同的还原方法,您必须使用正确的方法才能获得可预测的结果。

重建 (-r)

记住,在设计 mp 时考虑得更多的是文件系统,而不是单独的文件。因此,存在两种不同的文件还原风格。要重建一个文件系统,可使用 -r 命令行开关。设计重建的目的是为了能在空文件系统上操作,并将它还原为已保存的状态。在执行重建之前,您应该已经创建、格式化和装载(mount)了该文件系统。不应该对包含文件的文件系统执行重建。

下面是使用上面执行的转储来执行完全重建的例子。

restore -rf /dev/nst0

上面这个命令需要针对要还原的每个文件系统分别执行。

在需要的时候,可以重复这个过程来添加增量备份。

提取 (-x)

如果需要使用单独的文件而不是使用整个文件系统,您必须使用 -x 开关来提取它们。例如,要仅从我们的磁带备份中提取 /etc 目录,可使用以下命令:

restore -xf /dev/nst0 /etc

交互式还原 (-i)

restore 提供的另外一个特性是交互式模式。使用命令:

restore -if /dev/nst0

将把您置于交互式 shell 中,同时还显示了包含在该归档文件中的项。键入“help”将会显示一个命令列表。然后您就可以浏览并选择希望提取的项。务必记住,您提取的任何文件都将进入当前目录。

举例说明:
mp命令是一个专门用来备份的工具。

[root@localhost frank]# mp -0 -u -f /dev/hda3 /home/frank/
DUMP: Date of this level 0 mp: Sat Nov 30 19:45:56 2002
DUMP: Dumping /dev/hda9 (/home/frank) to /dev/hda3
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: none
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 15492 tape blocks.
DUMP: Volume 1 started with block 1 at: Sat Nov 30 19:46:01 2002
DUMP: mping (Pass III) [directories]
DUMP: mping (Pass IV) [regular files]
DUMP: Closing /dev/hda3
DUMP: Volume 1 completed at: Sat Nov 30 19:46:13 2002
DUMP: Volume 1 15490 tape blocks (15.13MB)
DUMP: Volume 1 took 0:00:12
DUMP: Volume 1 transfer rate: 1290 kB/s
DUMP: 15490 tape blocks (15.13MB) on 1 volume(s)
DUMP: finished in 12 seconds, throughput 1290 kBytes/sec
DUMP: Date of this level 0 mp: Sat Nov 30 19:45:56 2002
DUMP: Date this mp completed: Sat Nov 30 19:46:13 2002
DUMP: Average transfer rate: 1290 kB/s
DUMP: DUMP IS DONE

-0 是备份的等级,从0-9,0以后都是更新备份的参数,一般常用的是0和9
-u 是将备份记录写入/etc/mpdates这个文件中

[root@localhost frank]# cat /etc/mpdates
/dev/hda9 0 Sat Nov 30 19:45:56 2002
/dev/hda9 9 Sat Nov 30 17:04:20 2002

注意,当你备份的目录是一个子目录,而不是一个分区的顶层目录时-u参数
是不能使用的。

-f 是指定备份到那个文件,也可以指定一个设备文件,我在这里指定的就是一个分区

更新备份:

在0级别备份的基础上,向/home/frank写入一些新的文件,然后
umount /home/frank
mount /home/frank
注意如果不这样做,不会将新写入的文件备份进去的。

然后:

[root@localhost frank]# mp -9 -u -f /dev/hda3 /home/frank/
用restore tf /dev/hda3就会看到刚刚写入的文件会出现在列表中。

restore命令是用来恢复备份的。
[root@localhost frank]# restore rf /dev/hda3 /home/frank

用restore命令来查看备份文件里的文件列表
[root@localhost frank]# restore ft /dev/hda3

⑨ ubuntu12.04做svn备份,定时运行perl脚本一直不成功,cron文件配置有问题吗

把相对目录改为绝对目录

如./weekly_backup.pl改为/root/weekly_backup.pl


要注意perl脚本的权限和归属,最好是加上perl执行位置如

/sbin/perl/root/weekly_backup.pl

⑩ 如何备份Ubuntu系统以在电脑出问题时及时恢

在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。 在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZIP文件里去呢。这在Windows下是不可能的,因为在Windows中有很多文件在它们运行时是不允许拷贝或覆盖的,因此你需要专门的备份工具对Windows系统进行特殊处理。 和 备份Windows系统不同,如果你要备份Ubuntu系统(或者其它任何Linux系统),你不再需要像Ghost这类备份工具。事实上,Ghost 这类备份工具对于Linux文件系统的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系统,如果你用它来备份Ext3文件系统,你可能会 丢失一些宝贵的数据。 1. 备份系统 我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去! 首先成为root用户: $ sudo su 然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录): # cd / 下面是我用来备份系统的完整命令: # tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys / 让我们来简单看一下这个命令: “tar”当然就是我们备份系统所使用的程序了。 “cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。 “backup.gz”是我们将要得到的档案文件的文件名。 “/”是我们要备份的目录,在这里是整个文件系统。 在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。 有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。 执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。 备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。 在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。 你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下: # tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys / 2. 恢复系统 在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心! 接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。 在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令! 使用下面的命令来恢复系统: # tar xvpfz backup.tgz -C / 如果你的档案文件是使用Bzip2压缩的,应该用: # tar xvpfj backup.tar.bz2 -C / 注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。 执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。 恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录: # mkdir proc # mkdir lost+found # mkdir mnt # mkdir sys 等等 当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了! Linux备份策略研究 世界上没有绝对安全的系统。如果想获得绝对安全的系统,只有不连接网络,不让管理员之外的人使用,刷卡管制人员进出,使用监视器监视录像,甚至于不 要开机。但是这是完全不切实际的,我们仅能寄望尽量让系统能在承担低风险的情况下工作,因为任何操作系统都不可能毫无漏洞。那么怎样才能让系统承担最低的 风险呢?回答因该是在保障系统尽量安全的基础上,做好各个系统上的数据备份工作。一旦系统遭受到毁灭性的打击,可将平时做好的备份数据及时恢复,这样才能 使被破坏的系统迅速恢复正常,以避免不必要的损失。 下面针对Linux操作系统上的数据备份方法发表一下自己的看法。 数据备份种类 总的来说,在Linux操作系统中将备份分为两类:系统备份,实现对操作系统和应用程序的备份;用户备份,实现对用户文件的备份。在下面我们会看到,系统备份和用户备份是不同的。 系统备份 系统备份就是对操作系统和应用程序的备份,进行系统备份的原因是尽量在系统崩溃以后能快速简单完全地恢复系统的运行。进行备份的最有效方法是仅仅备份那些对于系统崩溃后恢复所必需的数据。 Linux系统中很多重要的文件位于/etc目录之下,如: /etc/group : 组用户信息; /etc/passwd : 包含所有的用户信息,如密码,登录shell等; /etc/fstab : 配置系统有哪些文件系统; /etc/inittab : 配置init在不同运行级别下分别如何启动系统; /etc/hosts : 域名解析的配置信息; /etc/inetd.conf : 进程控制信息; /etc/printcap:配置如何与打印机通信; /etc/XF86Config:包含XFree86的初始配置; 上面这些重要的配置文件都需要定期的做备份。 不 同的系统可能有很多重要配置文件,可以看到/etc目录下的配置文件非常重要。当然,某些程序使用了其他目录下的一些文件,但是Linux的基本配置文件 绝大多数都位于/etc目录下。很多人曾经花费了好长时间才正确的配置了XF86Config文件,想到如果重新再做一遍,就很费时费力。再举个例子, /etc目录下的passwd文件,如果误操作,将此文件更改,或删除了,则整个系统用户无法正常登录,如果定期或及时的对其备份,遇到上面的情况后,就 可以非常快速的恢复。 如果修改了某个程序所使用的配置文件,一般不能将其搬移到其它的地方,因为程序通常在固定的地方寻找配置文件。因此记录对系统所做的修改也非常重要,无论所做的修改如何小,当系统崩溃时才能轻松的恢复系统。 用户备份 用户备份不同于系统备份,因为用户的数据变动更加频繁一些。当备份用户数据时,只是为用户提供一个虚拟的安全网络空间,合理的放置最近用户数据文件的备份,当出现任何问题,例如,误删除某些文件或者硬盘发生故障时,用户可以恢复自己的数据。 用户备份应该比系统备份更加频繁,也许每天都需要进行备份,或使用cron程序自动定期运行某个程序的方法来备份数据。 数据备份策略 不 管系统多么可靠,总会发生一些意想不到的事情,致使系统数据丢失。因此使用备份来保护数据不丢失是一种非常重要的手段,尤其在系统数据非常重要的时候。经 常进行数据备份能够减少偶然破坏造成的损失,保证系统能够从错误中恢复正常运行。备份不应该成为一个长时间痛苦的事情,但它是作为系统管理必不可少的工 作,在着手之前进行详细的考虑和计划是应该的。 在进行备份之前,首先要选择合适的备份策略,这将决定何时需要备份,以及出现故障时进行恢复的方式。通常使用的备份方式有三种: 完全备份: 每隔一定时间就对系统进行一次全面的备份,这样在备份间隔期间出现数据丢失等问题,可以使用上一次的备份数据恢复到前次备份时数据状况。这是最基本的备份 方式,但是每次都需要备份所有的数据,并且每次备份的工作量也很大,需要大量的备份介质,因此这种备份不能进行的太频繁,只能每隔一段较长时间才进行一次 完整的备份。但是这样一旦发生数据丢失,只能恢复到上次备份的数据,这期间内更新的数据就有可能丢失。 增量备份: 首先进行一次完全备份,然后每隔一个较短时间进行一次备份,但仅仅备份在这个期间更改的内容。当经过一个较长的时间后再重新进行一次完全备份,开始前面的 循环过程。由于只有每个备份周期进行一次完全备份,其他只进行更新数据的备份,因此工作量小,可以进行频繁的备份。例如以一个月为一个周期,一个月进行一 次完全备份,每天晚上0点进行这一天改变的数据备份。这样一旦发生数据丢失,首先恢复到前一个完全备份,然后按日期一个一个恢复每天的备份,就能恢复到前 一天的情况。这种备份方法比较经济。 累计备份:这种备份方法与增量备份相似,首先每月进行一次完全备 份,然后每天进行一次更新数据的备份。但不同在于,增量备份是备份该天更改的数据,而累计备份是备份从上次进行完全备份后更改的全部数据文件。一旦发生数 据丢失,可以使用前一个完全备份恢复到前一个月的状态,再使用前一个累计备份恢复到前一天的情况。这样做的缺点是每次做累计备份工作的任务比增量备份的工 作量要大,但好处在于,增量备份每天都备份,因此要保存数据备份数量太多,而累计备份则不然,只需保存一个完全备份和一个累计备份就可以恢复故障以前的状 态。另外在进行恢复工作时,增量备份要顺序进行多次备份的恢复,而累计备份只需两次恢复,因此它的恢复工作相对简单。 增量备份和累计备份 都能以比较经济的方式对系统进行备份,在这些不同的策略之间进行选择不但与系统数据更新的方式相关,也依赖于管理员的习惯。通常在系统数据更新不是太频繁 的话,可以选用更新备份的方式。但是如果系统数据更新太快,使每个备份周期后的几次累计备份的数据量相当大。这时候可以考虑增量备份或混用累计备份和增量 备份的方式,或者缩短备份周期。 数据备份命令 在Linux系统中常用的备份命令通常有下面几种: 1.使用tar命令 Linux的实用程序tar最初是为了制作磁带存档而设计的(把文件和目录复制到磁带中,然后从存档中提取或恢复文件),而现在的应用中可以把它用于任何设备,它是数据备份中最常用的命令之一。 下面具体介绍tar命令的使用方法: (1)格式:tar 参数 ...... (2)参数: c: 创建备份(Create) v: 表示回显模式(Verbose),将产生一系列备份的文件列表 f: 指定使用的备份文件,它后面的参数为输出的备份文件名 x: 备份文件 t: 显示备份文件的内容 T: 后面跟随一个文件参数,指定从这个文件中读取要备份的各个文件的路径。如果不使用T参数,那么就需要一个参数,指明进行备份文件和目录的路径 Z: 使用压缩方式创建和解开备份文件,这是GNU的新版tar的功能,需要同时安装gzip。 例如: $ tar cvf backup.tar /etc 上 面的命令将/etc下的所有文件打包成tar存档文件backup.tar。tar的第一个参数“cvf”,是tar的命令参数,“c”告诉tar创建一 个存档文件;“v”选项迫使tar采用冗长模式,即在存档时打印每个文件名;“f”选项告诉tar下一个参数backup.tar是创建的存档文件名。 下面一行的命令将tar文件backup.tar解开并放到当前工作目录下。必须说明的是这样做是有危险的,因为在从tar文件中解开文件时,旧文件将被覆盖。 $ tar xvf backup.tar 在解开tar文件之前,知道在何处打开文件是非常重要的。例如,假设存档以下文件:/etc/hosts,/etc/group和/etc/passwd。如果用下述命令: $ tar cvf backup.tar /etc/hosts /etc/group /etc/passwd 目录/etc会被加到每个文件名前。为了将文件到正确位置,需要用下述命令: $ cd / $ tar xvf backup.tar 这是因为文件从存档文件中抽取出路径名,如果用下述命令存档文件: $ cd /etc $ tar cvf hosts group passwd 这样目录名就不存在存档文件中,因此需要在文件之前用“cd /etc”命令进入目录etc。由此可见,tar文件的创建方式与在何处有很大关系。 命令: $ tar tvf backup.tar 在解开tar文件之前显示tar文件的索引,用这种方式可以看到存档文件中与文件名有关的目录名,从而在正确位置上存档文件。 2.gzip和compress 命令 与MS-DOS的存档程序不同, tar在存档过程中并不压缩文件。因此,如果存储两个1MB的文件,那么tar文件大小为2MB,gzip命令用来压缩文件(被压缩的文件并不需要是tar格式)。 例如: $ gzip -9 backup.tar 压缩backup.tar文件,产生的文件为backup.tar.gz,开关“-9”告诉gzip用最高的压缩比。gunzip命令用来解开一个gzip压缩的文件,用“gzip -d”也可以达到同样效果。 例如: $ gunzip backup.tar.gz $ gzip -d backup.tar.gz 3. 联合使用 介绍了这些命令之后,我们来尝试组合使用这些命令。为了压缩存储一组文件,可以用下述命令: $ tar cvf backup.tar /etc $ gzip -9 backup.tar 结果是形成文件backup.tar.gz。该文件时,用相反的命令: $ gunzip backup.tar.gz $ tar xvf backup.tar tar命令还包括“z”选择项,它会自动采用gzip压缩算法来联机压缩/解压文件。例如,下列命令: $ tar cvfz backup.tar.gz /etc 上面一行的命令等价于: $ tar cvf backup.tar /etc $ gzip backup.tar 而命令: $ tar xvfz backup.tar.Z 可以用来代替下述命令: $ uncompress backup.tar.Z $ tar xvf backup.tar 案例实验 案例:使用tar进行备份。 选定了备份方式之后,可以使用tar、cpio、mp等备份工具软件将数据备份到磁带上。对于一般的备份,使用tar就足够了。tar能够创建备份文档,能够备份到磁带上或者产生一个文件,如: $ tar cvf root.tar /root 将/root目录下的所有文档备份到root.tar文件中,root.tar为指定输出的备份文件,/roo t指出要做备份的目录。如果要备份到磁带上,将输出的备份文件指定为磁带设备文件即可: $ tar cvf /dev/rmt/0h /root 如果设置了环境变量TAPE,则可以不使用选项“f”指定输出磁带设备名字: $ TAPE=/dev/rmt/0h; export TAPE $ tar cv /root 要进行增量备份,必须找出哪些文件在这个期间进行更新。这个任务可以由命令find来完成,例如查找过去七天更改的文件,并使用tar的“-T”参数制定进行备份的文件,命令如下: $ find / -mtime -7 -print > /tmp/filelist $ tar -c -T /tmp/filelist -f /dev/rmt/0h 由 于要使用find来找出需要备份的文件列表,那么就需要利用文件的修改时间进行查询,需要使用“-mtime” 参数。另一个更有用的参数是“-newer”,可以查找出所有比某个文件更新的文件,由于备份是周期进行的,因此可以在完全备份之后生成一个标记文件,那 么所有比这个文件新的文件都需要进行更新备份。 $ find / -newer full_back_tag_file -print > /tmp /filelist 进 行数据备份需要定期执行,不能完全依赖于管理员手工进行备份。备份也应该选择在系统比较空闲时进行,以免影响系统的正常处理任务。通常可以选择半夜 0:00点之后进行备份,这样更不能将这个任务由管理员手工完成了。但Linux提供了定时服务cron程序,能够在确定的时间中执行一系列任务,因此数 据备份必须和cron合作来完成,或者使用/etc下的daily,weekly,monthly文件做定时备份的操作。