有言道,冗余不做,日子甭过;备份不做,十恶不赦。对于Linux系统管理员而言,备份是要定期做的重要工作。虽然工作性质重要但这并不妨碍系统管理员通过各种方式让系统自动完成这个任务。下面提供的脚本是Linux系统上常用的备份脚本,供大家参考。

Linux常用备份脚本

01 #!/bin/bash
02 #指定运行的脚本shell
03 #运行脚本要给用户执行权限
04 bakdir=/backup
05 month=`date +%m`
06 day=`date +%d`
07 year=`date +%Y`
08 hour=`date +%k`
09 min=`date +%M`
10 dirname=$year-$month-$day-$hour-$min
11 mkdir $bakdir/$dirname
12 mkdir $bakdir/$dirname/conf
13 mkdir $bakdir/$dirname/web
14 mkdir $bakdir/$dirname/db
15 #备份conf,检测通过
16 gzupload=upload.tgz
17 cp /opt/apache2/conf/httpd.conf $bakdir/$dirname/conf/httpd.conf
18 cd /opt/apache2/htdocs/php
19 tar -zcvf $bakdir/$dirname/web/$gzupload ./upload
20 #远程拷贝的目录要有可写权限
21 scp -r /backup/$dirname [email protected]:/backup
1 备份数据库
1 #!/bin/bash
01 #指定运行的脚本shell
02 #运行脚本要给用户执行权限
03 bakdir=/backup
04 month=`date +%m`
05 day=`date +%d`
06 year=`date +%Y`
07 hour=`date +%k`
08 min=`date +%M`
09 dirname=$year-$month-$day-$hour-$min
10 mkdir $bakdir/$dirname
11 mkdir $bakdir/$dirname/conf
12 mkdir $bakdir/$dirname/web
13 mkdir $bakdir/$dirname/db
14 #热备份数据库
15 cp /opt/mysql/my.cnf $bakdir/$dirname/db/my.cnf
16 cd /opt/mysql
17 mysqldump --opt -u zhy -p --password=1986 test>$bakdir/$dirname/db/test.sql
18 mysqldump --opt -u zhy -p --password=1986 phpwind>$bakdir/$dirname/db/phpwind.sql
19 #远程拷贝的目录要有可写权限
20 scp -r /backup/$dirname [email protected]:/backup