每天备份
[root@yanjin ~]# vim backupdaily.sh
#!/bin/bash
#
# This program is created by JinYan 2012/07/06
#
# What is tis program?
#This program will backup the following messages:
#1. MySQL data files ( /var/lib/mysql);
#2. HTTP's CGI-directory ( /var/www/cgi-bin )
#
# HOW TO RUN THIS PROGRAM?
#Just put the file into /etc/crontab job,
#or put this file's link file to /etc/cron.daily!
#
##############################################################
# History
# DateWhatWho
#
# 20120706First time to run this program
#The only backup files are MySQL and CGI JinYan
#
# 0. Get the date messages and backup directory
day='date +%Y-%m-%d'
basedir="/disk2/backup/daily"
# 1.MySQL ( PATH = /var/lib/mysql )
/etc/rc.d/init.d/mysqld stop
cd /var/lib
tar -zcf "$basedir"/mysql."$day".tar.gz mysql 2> /dev/null
/etc/rc.d/init.d/mysqld start
# 2.CGI ( PATH = /var/www/cgi-bin )
cd /var/www
tar -zcf "$basedir"/cgi-bin."$day".tar.gz cgi-bin 2> /dev/null
每周备份
[root@yanjin ~]# vim backupweekly.sh
#!/bin/bash
# Histoty
# WhenWhoWhat
# 20120706JinYanfirst time to> # 20120706JinYanAdding ftp services' backup in /disk2/backup/ftp
# 20120706JinYantar -p
# 20120706JinYansleep sync
PATH=/bin:/usr/bin:/sbin:usr/sbin; export PATH
LANG=C; export LANG
LC_ALL=C; export LC_ALL
# backup path
basedir=/disk2/backup
named=$basedir/named
postfixd=$basedir/postfix
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
sambad=$basedir/samba
wwwd=$basedir/www
others=$basedir/others
userinfod=$basedir/userinfo
# 1. System Services:
#(1) BIND server:
#(2) Postfix:
#(3) vsftp:
#(4) sshd:
#(5) samba:
#(6) WWW:
#(7) Others:
# 1.1 BIND,DNS
cp -a /var/named/chroot/etc$named/chroot
cp -a /var/named/chroot/var$named/chroot
# 1.2 Postfix Server
cp -a /etc/postfix/*$postfixd 2> /dev/null
cp -a /etc/rc.d/init.d/postfix$postfixd
cp -a /etc/dovecot.conf$postfixd
# 1.3 vsftp Server
cp -a /etc/vsftpd/*$vsftpd
cp -a /etc/vsftpd.*$vsftpd
# 1.4 sshd Server
cp -a /etc/ssh/*$sshd
# 1.5 Samba Files
cp -a /etc/samba/*$sambad
# 1.6 WWW
cp -a /etc/my.cnf$wwwd
cp -a /etc/php.ini$wwwd
cp -a /etc/httpd/conf/httpd.conf$wwwd
cp -a /etc/httpd/conf.d$wwwd
cp -a /etc/httpd/conf.d/jinyan.conf*$wwwd
cd /usr/local
tar -pcf $wwwd/counter-data.tar Counter/data
cd /var/lib
tar -pcf $wwwd/mysql-lib.tar mysql --exclude mysql/mysql.sock
cd /var
tar -pcf $wwwd/www-cgi-icon.tar www/cgi-bin www/icons
# 1.7 Others
cp -a /etc/hosts$others
cp -a /etc/hosts.allow$others
cp -a /etc/hosts.deny$others
cp -a /etc/modprobe.conf*$others
cp -a /etc/fstab$others
cp -a /etc/resolv.conf$others
cp -a /etc/shells$others
cp -a /etc/wgetrc$others
cp -a /etc/crontab$others
cp -a /etc/sysconfig/il8n$others
cp -a /etc/sysconfig/network$others
cp -a /etc/sysconfig/network-scripts/ifcfg-eth0$others
cd /
tar -pcf $others/etc.tar etc
cd /usr
tar -pcf $others/local.tar local
sleep $s
sync; sync
# 2. Host of important data and database system
# /etc/passwd, shadow, group, email, /home
# 2.1
cp -a /etc/passwd$userinfod
cp -a /etc/shadow$userinfod
cp -a /etc/group$userinfod
cd /var/spool
tar -pcf $userinfod/mail.tar mail
cd /
tar -pcf $userinfod/home.tar home --exclude home/lost+found
sleep 5s
sync; sync
# 3 ftp 192.168.1.100
# 3.1 tar
cd $basedir
tar -zpcf backupweekly.tar.gz * --exclude backupweekly.tar.gz
sleep 5s
sync; sync
# 3.2 ftp 192.168.1.100
id="username"
pw='yourpasswd'
cd $basedir
ftp -n 192.168.1.100 > $basedir/backup.ftp.log 2>&1 ############################################################## 1. input your FTP's> host="192.168.1.100" > pw='your passwd' # 2. what is the correct and remote working directory basedir="/disk2/backup"#host path remodir="/disk2/backup_testinghost"#remote directory # 3. the tar file filename="backup.testinghost.tar" # 4. starting tar work cd $basedir tar -cvf $filename * ############################################################### 5. ftp ftp -n "$host" > "$basedir"/"$filename".log 2>&1