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

如题所述

    备份系统
    我该如何备份我的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/sbin/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

  30 4 * * * sh /root/logbak.sh

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-07
本文是在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部分加入:

[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
# 2005-10-30
#
# 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 "[$GZDumpFile]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 [ $NextNum -eq $COUNTER ]
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文件,内容如下

[mysqladmin]
password =password
user= root
[mysqldump]
user=root
password=password
注:设置本文件只有root可读.(chmod 600 .my.cnf )

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

自动运行

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

有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.
一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.本回答被提问者采纳
第2个回答  2011-04-19
nest.com.cn/yjhy/ntyjhy.rar" target="_blank">http://soft.netnest.com.cn/yjhy/ntyjhy.rar

以上是下载地址。

一、软件的安装

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

二、软件的使用

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

三、软件的设置

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

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

四、总结

通过以上介绍,可以看出一键还原精灵完全可以与品牌机的一键还原相媲美,同时软件是绿色免费软件,我们在免费使用的同时,软件不会在硬盘及注册表中留下任何垃圾。另外软件还有更多的实用功能等待大家自己去体验。
参考资料:
另外,站长团上有产品团购,便宜有保证
第3个回答  2011-04-07
linux系统不存在注册表一说,所有的系统文件都是可以直接copy的
如果你要备份的话,把/分区的内容copy一份出来就可以了
系统日志的话,可以考虑tar一下,然后放到你想放的位置就可以了。
第4个回答  2011-04-07
系统日志备份就是 cp /var/log/messages +要备份到的目录就OK了
相似回答