红联Linux门户
Linux帮助

关于Linux的备份

发布时间:2015-04-12 21:42:07来源:王振楠作者:王振楠

关于Linux备份知识的个人修改整理。

自动上传文件到ftp服务器相关目录

如果在crontab备份档案后,想将档案透过FTP传送到其他伺服器,可以用以下方法编写shell script:

#!/bin/bash
cd /tmp/backup  #Linux机目录
ftp -n<<!
open 192.168.0.7
user 用户名 密码
binary
cd /backup   #要传输到的ftp服务器目录
prompt
mput *
close
bye
!

文中的<<!的意思是<<以后的内容作为ftp命令的输入,一直到!的出现

shell script储存后,需要执行chmod 700 给予执行权限,然后放到crontab里面便完成了。


利用系统crontab来定时执行备份mysql文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/backup

mkdir /backup

mkdir /backup/mysql

2、创建一个备份的执行文件

vi /backup/backup.sh

内容输入

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

tar zcvf /backup/mysql/mysql$rq.tar.gz /var/lib/mysql

或者写成

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

mysqldump --all-databases -u root -p 2339212py > /mysqldata/mysql$time.sql

用日期做备份数据库的名字,然后可用tar压缩一下

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。

3、修改文件属性,使其可执行

chmod 700 /backup/backup.sh

4、修改/etc/crontab

vi /etc/crontab

在下面添加

0 3 * * * root /backup/backup.sh

表示每天3点钟执行备份

5、重新启动crond

/etc/rc.d/init.d/crond restart 或 service crond restart

完成。


或者备份网站目录

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

tar zcvf /backup/www/www$time.tar.gz /var/www/html/

做备份之前先建立目录


附mysqldump命令

1.备份所有数据库

mysqldump --all-databases > /bak/all.sql

2.备份指定数据库

mysqldump --opt company > /bak/company.sql

3.备份指定表

mysqldump --opt company person > /bak/person.sql

4.备份表结构

mysqldump --no-data company person > /bak/person.sql

5.指定备份条件

只备份Market部门的工资记录

mysqldump --opt company wages --"where=dept='Market'" > /wages.sql


linux下tar 做增量备份

ftp目录下有三个文件夹,其中ftpuser 、KN-FILE、public 需要备份在 bak_temp 目录下

先来个完整备份

# cd /ftp/

# tar -g /ftp/bak_temp/ftpuser -zcvf /ftp/bak_temp/ftpuser_full.tar.gz ftpuser

# tar -g /ftp/bak_temp/kn-file -zcvf /ftp/bak_temp/kn-file_full.tar.gz KN-FILE

# tar -g /ftp/bak_temp/public -zcvf /ftp/bak_temp/public_full.tar.gz public

备份完成后可以输入 tar tf 查看一下包里的文件

# tar tf /ftp/bak_temp/public_full.tar.gz


增量备份

# tar -g /ftp/bak_temp/ftpuser -zcvf /ftp/bak_temp/ftpuser_incremental.tar.gz ftpuser

# tar -g /ftp/bak_temp/kn-file -zcvf /ftp/bak_temp/kn-file_incremental.tar.gz KN-FILE

# tar -g /ftp/bak_temp/public -zcvf /ftp/bak_temp/public_incremental.tar.gz public

注意,-g 参数后所跟的文件名一定要和做完整备份时的一样,因为他会从里面读取相关的数据,否则增量备份不成功。

当你查看增量备份出来的tar包时,发现里面的内容比较少,因为他只备份了你修改过的文件,发现包里文件少也证明了增量备份成功。

还原数据的时候,先cd 到你要存放还原文件的目录,接着解压完整备份的包,再依次解压增量备份包

# tar zxvf /ftp/bak_temp/ftpuser_full.tar.gz

# tar zxvf /ftp/bak_temp/ftpuser_incremental.tar.gz

增量备份,只会备份你改变过的名字,如某文件添加或删除过字符、新建文件、新建目录,都会做备份,增量备份故名思意只做增加的备份,如删除的操作不备份。