如何对Linux操作系统进行备份? (linux操作系统备份)

备份操作是任何一台计算机系统中都必不可少的操作,因为它可以保证数据的安全。那么在Linux操作系统中,如何进行备份呢?下面这些方法可以帮助你备份Linux操作系统。

一、备份数据

备份数据是非常重要的。在备份之前,请确保所有的数据都已经保存了。在Ubuntu中,你可以使用rsync命令进行数据备份。

例如,我们要将”/home/user”下的所有数据复制到”/newhome/user”中,可以使用以下命令:

rsync -av /home/user /newhome/user

在这个命令中,“-a”是表示以archive模式备份,“-v”表示在备份时输出详细信息。

二、备份系统

除了备份数据之外,还需要备份整个Linux系统。从而保证系统出现问题时可以快速恢复。备份系统有许多方法,以下是其中两种:

1、使用dd命令备份

dd命令可以将整个磁盘拷贝到另一个磁盘中。你需要一个可以存放备份文件的位置,比如:/backup。你需要找到你要备份的目标磁盘分区的设备名,比如/dev/sda1。

sudo dd if=/dev/sda1 of=/backup/sda1.backup

在上面的命令中,“if”是表示输入设备,“of”是表示输出设备,也就是备份文件的位置。

2、使用tar命令备份

tar命令可以将整个文件系统打包成一个.tar文件。你需要一个可以存放备份文件的位置,比如:/backup。你需要找到你要备份的目标磁盘分区的挂载点,比如/。

sudo tar cvpzf /backup/backup_home.tar.gz –exclude=/backup /home

在上面的命令中,“-c”是表示创建归档文件,“-v”是表示在备份时输出详细信息,“-p”是表示保留文件的权限和所有权, “-z”是表示通过gzip压缩文件,“-f”是表示指定归档文件的名称。

三、定时备份

备份数据和系统可以手动进行,但是一些备份任务需要定期进行。例如,在Ubuntu中,日志文件的备份需要每天自动备份。为了实现定期备份,可以使用crontab工具。

你需要将你的备份命令写到一个脚本中,比如:/home/user/backup.sh。你需要创建一个crontab文件,用来指定你的备份任务。运行以下命令将备份命令写入crontab(编辑时,动作分别为:进入编辑模式,输入命令,按Esc退出编辑模式,输入:wq保存退出):

crontab -e

例如,在这个例子中,我们要每天的午夜12点自动备份/home/user目录到/newhome/user,可以在crontab文件中写下以下命令:

0 0 * * * rsync -av /home/user /newhome/user

在上面的命令中,“0 0 * * *”是表示在每天的午夜12点执行命令。

备份对于任何计算机系统来说都是非常重要的。在Linux操作系统中,备份数据和备份系统的方法是多种多样的。手动备份的方法需要手动执行,而定期备份能够在预定的时间自动执行。通过学习这些备份方法,你可以轻松地保护你的Linux操作系统的数据安全。

相关问题拓展阅读:

linux 系统如何备份,系统日志如何备份?

本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本.

本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数.

每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失.

希望你明白这个脚本要干什么工作!

脚本描述

每7天备份一次所有数据,每天备份binlog,也就是增量备份.

(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)

作者对shell脚本不太熟悉,所以很多地方写的很笨 🙂

开启 bin log

在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:

log-bin

这个日志的主要作用是增量备份或者复制(可能还有其他用途).

如果想增量备份,必须打开这个日志.

对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.

在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).

所以如果从来不备份,开启日志可能没有必要.

完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.

完整备份脚本

如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了.

#!/bin/sh

# mysql data backup script

# by scud

#

#

# use mysqldump –help,get more detail.

#

BakDir=/backup/mysql

LogFile=/backup/mysql/mysqlbak.log

DATE=`date +%Y%m%d`

echo ” ” >> $LogFile

echo ” ” >> $LogFile

echo “-” >> $LogFile

echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile

echo “” >> $LogFile

cd $BakDir

DumpFile=$DATE.sql

GZDumpFile=$DATE.sql.tgz

mysqldump –quick –all-databases –flush-logs

–delete-master-logs –lock-all-tables

> $DumpFile

echo “Dump Done” >> $LogFile

tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

echo “Backup Success!” >> $LogFile

rm -f $DumpFile

#delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.

cd $BakDir/daily

rm -f *

cd $BakDir

echo “Backup Done!”

echo “please Check $BakDir Directory!”

echo “copy it to your local disk or ftp to somewhere !!!”

ls -al $BakDir

上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下.

注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动操作.

增量备份

增量备份的数据量比较小,但是要在完整备份的基础上操作,用户可以在时间和成本上权衡,选择最有利于自己的方式.

增量备份使用bin log,脚本如下:

#!/bin/sh

#

# mysql binlog backup script

#

/usr/bin/mysqladmin flush-logs

DATADIR=/var/lib/mysql

BAKDIR=/backup/mysql/daily

###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名

HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

##计算行数,也就是文件数

COUNTER=0

for file in $FILELIST

do

COUNTER=`expr $COUNTER + 1 `

done

NextNum=0

for file in $FILELIST

do

base=`basename $file`

NextNum=`expr $NextNum + 1`

if

then

echo “skip lastest”

else

dest=$BAKDIR/$base

if(test -e $dest)

then

echo “skip exist $base”

else

echo “copying $base”

cp $base $BAKDIR

fi

fi

done

echo “backup mysql binlog ok”

增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.

因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.

注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成.

访问设置

脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqldump都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个.my.cnf文件,内容如下

password =password

user= root

user=root

password=password

注:设置本文件只有root可读.(chmod 600 .my.cnf )

此文件说明程序使用mysql的root用户备份数据,密码是对应的设置.这样就不需要在脚本里写用户名和密码了.

自动运行

为了让备份程序自动运行,我们需要把它加入crontab.

有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.

一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.

备份系统

我该如何备份我的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、系统日志备份

只需要将日志文件移动到备份目录下

  然后将日志压缩打包,并删除日志文件

  最后重建日志文件

  #!/bin/b

.sh

#

nginx_app=/usr/local/nginx/in/nginx

logs_dir=/usr/local/nginx/logs

bak_dir=/tmp/logbak/

date=`date +%Y%m%d`

#

#先将日志文件移动到备份目录

cd $logs_dir

echo “moving logs”

mv *.log $bak_dir

sleep 3

#

#重建log文件

echo “rebuild logs”

echo “$nginx_app -s reopen”

$nginx_app -s reopen

#

#打包log文件,并以日期命名

echo “tar log”

cd $bak_dir

tar czf $date.tgz *.log

#

#删除备份目录的临时文件

echo “rm logs”

rm -f *.log

echo “done”

  然后添加个计划任务,比如每天凌晨4点半执行,脚本位置在/root/logbak.sh

  crontab -e

* * * sh /root/logbak.sh

nest.com.cn/yjhy/ntyjhy.rar” target=”_blank”>

以上是下载地址。

一、软件的安装

双击下载回来的安装文件Setup.exe,稍等片刻,电脑就会自动重新启动,同时进入一键还原精灵的安装界面(如图1所示),点击安装按钮,就会弹出选择安装版本窗口,软件分为动态分区版与固定分区版两个版本,动态分区版可以当日后备份分区空间不足时自动增加空间,而固定分区版日后不能改变分区空间,所以在这里我们选择安装动态分区版,点击动态分区版按钮后电脑就会自动安装,一会儿弹出安装成功对话框。

二、软件的使用

电脑重新启动后,进入系统前屏幕顶部就会出现“***Pressto start recovery system***”的提示,这时按下F11键就可以使用“一键还原精灵”了(发如2所示),因是之一次使用,所以系统提示对C盘进行备份,这时按下F8 或是点击“备份系统”按钮,电脑就会自动启动Ghost8.0对C盘进行备份,这些操作都是全自动的,备份完成后,电脑自动重新启动。系统备份完成了,在电脑出现问题后,怎样还原呢?只要在开机时按下F11键,调出“一键还原精灵”主界面后,点击其上面的还原系统或是按F5,电脑就会再次自动启动 Ghost8.0对系统盘进行还原操作。是不是与品牌机的一键还原功能不差上下呀?

三、软件的设置

上面我们介绍使用“一键还原精灵”备份与还原系统,其实刻软件还有更强大的功能呢。在软件主界面上,点击“设置→高级设置”菜单,就可以打开高级设置窗口(如图3所示),在这里我们可以设置永久还原点,这样即使C盘被格式化,我们也可以轻松地还原系统了,同时还可以备份CMOS设置、屏幕设置及转到 DOS等操作。另外为了备份系统的安全性,软件具有用户权限设置功能,允许设置管理员密码与用户密码,这样多人操作电脑也能够保证系统的安全了。

如果你不想使用一键还原精灵了,还可以轻松卸载,点击高级设置窗口上的“卸载精灵”按钮,就可以完全删除一键还原精灵了,另外还可以通过双击安装文件,在安装界面上,点击“工具箱”按钮,在工具箱窗口中也可以轻松卸载“一键还原精灵”。

四、总结

通过以上介绍,可以看出一键还原精灵完全可以与品牌机的一键还原相媲美,同时软件是绿色免费软件,我们在免费使用的同时,软件不会在硬盘及注册表中留下任何垃圾。另外软件还有更多的实用功能等待大家自己去体验。

参考资料:

另外,站长团上有产品团购,便宜有保证

linux系统不存在注册表一说,所有的系统文件都是可以直接copy的

如果你要备份的话,把/分区的内容copy一份出来就可以了

系统日志的话,可以考虑tar一下,然后放到你想放的位置就可以了。

关于linux操作系统备份的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何对Linux操作系统进行备份? (linux操作系统备份)