每天备份
[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
# Date What Who
#
# 20120706 First 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
# When Who What
# 20120706 JinYan first time to release
# 20120706 JinYan Adding ftp services' backup in /disk2/backup/ftp
# 20120706 JinYan tar -p
# 20120706 JinYan sleep 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 << EOC
user $id $pw
binary
cd /disk2/backup/
put backupweekly.tar.gz
bye
EOC
sync; sync