Linux备份shell脚本

每天备份 

[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

 
 
 
FTP备份
[root@yanjin ~]#  vim backupFTP.sh
#!/bin/bash
#
# WHAT IS THIS:
# This program will automatically put the backup file
# from this host to another hosts
#
# HISTORY
# When Who What
# 20120706 JinYan First time to release
#
############################################################
# 1. input your FTP's ID and PassWord
  host="192.168.1.100"
  id="testing"
  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 <<EOC
  user $id $pw
  binary
  cd $remodir
  put $filename
  bye
  EOC  
 
 

 

 

 

你可能感兴趣的:(备份,shell,脚本)