顯示具有 shell script 標籤的文章。 顯示所有文章
顯示具有 shell script 標籤的文章。 顯示所有文章

2011年7月15日 星期五

cut_mysql_dump

!/bin/bash

echo "input mysqldump file:"
read fsql

echo "input mysqldump tables name: "
read tn

cat $fsql | grep -n "Table structure for table" | grep $tn | awk -F: '{print $1}' > St
St1=`cat St`

cat $fsql | grep -n "ENABLE KEYS" | grep $tn | awk -F: '{print $1}' > Et
Et1=`cat Et`
echo "$Et1+1" | bc > Et2
Et2=`cat Et2`

sed -n "$St1,$Et2"p  $fsql > 1111.sql

rm -rf Et* St

mysql備份指令2

#!/bin/bash

MyUSER="root"     # USERNAME
MyPASS="123456"       # PASSWORD
MyHOST="localhost"          # Hostname

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"

# Get data in dd-mm-yyyy format
NOW="$(date +"%Y%m%d%H%M")"

#keep backup data amount
Num=10                      

# Backup Dest directory, change this if you have someother location
DEST="/usr/backup/zone/"

# Main directory where backup will be stored
MBD="$DEST/sqlbackup-$NOW"

# Get hostname
HOST="$(hostname)"


# File to store current backup file
FILE=""
# Store list of databases
DBS=""

# DO NOT BACKUP these databases
IGGY="test"

[ ! -d $MBD ] && mkdir -p $MBD || :

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST


 #################  keep the data amount    ####################################

  if [ `ls $DEST |sort|wc -l` -gt $Num ];then
          while [ `ls $DEST |sort|wc -l` -gt $Num ]
          do
           echo "deling"
           Dir=`ls $DEST|sort -r| tail -1`
           rm -rf $DEST$Dir
          done
      fi



# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"

for db in $DBS
do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
    for i in $IGGY
    do
        [ "$db" == "$i" ] && skipdb=1 || :
    done
    fi

    if [ "$skipdb" == "-1" ] ; then
    FILE="$MBD/$db.$HOST.$NOW.sql"
    # do all inone job in pipe,
    # connect to mysql using mysqldump for select mysql database
    # and pipe it out to gz file in backup dir :)
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS  --add-drop-table --add-locks -B  $db  > $FILE
    fi
done


#######################copy binlog ########################
BinLog=`find /var/lib/mysql/ -name '*bin.0*'  | cut -d '/' -f5 | grep -v 'relay' | sort | tail -n2`
mysqldir="/var/lib/mysql"    #mysql data direction
#bckupDB=`find /var/lib/mysql/ -type d  | cut -d '/' -f5`  #DB name which you want to backup
 #################  backup the DB          ######################################
      echo "backup db data ................."
      cd $mysqldir
      cp -rf $BinLog  $MBD
#      cp -rf  $backupDB $MBD
   ################ tar the DB backup files  ######################################
#      cd $DEST
#      tar zcf $NOW.tar.gz $MBD

mysql備份指令cp方式

#!/bin/bash
Date="ph`date +%Y%m%d%H%M`"
backupdir="/usr/backup/"     #backup mysql data direction
mysqldir="/var/lib/mysql"    #mysql data direction
backupDB=`find /var/lib/mysql/ -type d  | cut -d '/' -f5`  #DB name which you want to backup
Num=8                       #keep backup data amount
#BinLog=`ls $mysqldir | grep bin| grep -v 'index'|tail -2`
BinLog=`find /var/lib/mysql/ -name '*bin.0*'  | cut -d '/' -f5 | grep -v 'relay' | sort | tail -n2`

   #################  keep the data amount    ####################################
      if [ `ls $backupdir |sort|wc -l` -gt $Num ];then  
          while [ `ls $backupdir |sort|wc -l` -gt $Num ]
          do 
           echo "deling"
           Dir=`ls $backupdir|sort -r| tail -1`
           rm -rf $backupdir$Dir
          done
      fi
   #################  backup the DB          ######################################
      echo "backup db data ................."
      mkdir -p $backupdir$Date
      cd $mysqldir
      cp -rf $BinLog $backupDB $backupdir$Date
   ################ tar the DB backup files  ######################################
      cd $backupdir
      tar zcf $Date.tar.gz $backupdir$Date

砍mysqlbinlog

#!/bin/bash
DEST="/var/lib/mysql/"
Num=2
#################  keep the data amount    ####################################

  if [ `find $DEST -name '*bin.0*'  | cut -d '/' -f5 | grep -v 'relay' | sort | wc -l` -gt $Num ];then
          while [ `find $DEST -name '*bin.0*'  | cut -d '/' -f5 | grep -v 'relay' | sort | wc -l` -gt $Num ]
          do
#           echo "deling"
           BINLOG=`find $DEST -name '*bin.*'  | cut -d '/' -f5 | grep -v 'relay' | grep -v 'index' | sort  | head -n1 `
           rm -rf $DEST$BINLOG
#           echo $DEST$BINLOG
          done
      fi

mysql備份指令

#!/bin/bash

MyUSER="root"     # USERNAME
MyPASS="123456"       # PASSWORD
MyHOST="localhost"          # Hostname

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"

# Get data in dd-mm-yyyy format
NOW="$(date +"%Y%m%d%H%M")"

#keep backup data amount
Num=30                      

# Backup Dest directory, change this if you have someother location
DEST="/var/local/"

# Main directory where backup will be stored
MBD="$DEST/sqlbackup-$NOW"

# Get hostname
HOST="$(hostname)"


# File to store current backup file
FILE=""
# Store list of databases
DBS=""

# DO NOT BACKUP these databases
IGGY="test"

[ ! -d $MBD ] && mkdir -p $MBD || :

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST


 #################  keep the data amount    ####################################

  if [ `ls $DEST |sort|wc -l` -gt $Num ];then
          while [ `ls $DEST |sort|wc -l` -gt $Num ]
          do
           echo "deling"
           Dir=`ls $DEST|sort -r| tail -1`
           rm -rf $DEST$Dir
          done
      fi



# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"

for db in $DBS
do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
    for i in $IGGY
    do
        [ "$db" == "$i" ] && skipdb=1 || :
    done
    fi

    if [ "$skipdb" == "-1" ] ; then
    FILE="$MBD/$db.$HOST.$NOW.sql"
    # do all inone job in pipe,
    # connect to mysql using mysqldump for select mysql database
    # and pipe it out to gz file in backup dir :)
        #$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS  --default-character-set=latin1 --add-drop-table --add-locks -B  $db  > $FILE
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS   --add-drop-table --add-locks -B  $db  > $FILE
    fi
done


#######################copy binlog ########################
BinLog=`find /var/lib/mysql/ -name '*bin.0*'  | cut -d '/' -f5 | grep -v 'relay' | sort | tail -n2`
mysqldir="/var/lib/mysql"    #mysql data direction
#bckupDB=`find /var/lib/mysql/ -type d  | cut -d '/' -f5`  #DB name which you want to backup
 #################  backup the DB          ######################################
#      echo "backup db data ................."
#      cd $mysqldir
#      cp -rf $BinLog  $MBD
#      cp -rf  $backupDB $MBD
   ################ tar the DB backup files  ######################################
#      cd $DEST
#      tar zcf $NOW.tar.gz $MBD

fire-well-start

#!/bin/sh







echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 3 > /proc/sys/net/ipv4/tcp_retries1
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1400 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all






modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp

#iptables -P INPUT ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t filter -F
iptables -t nat -F
iptables -t filter -X
iptables -t nat -X

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP
iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -j LOG --log-prefix "** Firewall DROP **"




#######################################################################
CK="1"

CPASSLOG="0"

if [ "$CK" = "1" ]; then
   echo -n "Getting the CK Block List..."
   CIP="$CIP
      `cat /root/fw/ck-ip | \
      awk '/^[1-9]/ {print $1 }'`"
   echo "ok"
fi

iptables -N CIP

if [ "$CPASSLOG" = "1" ]; then
   iptables -A CIP -j LOG --log-prefix "** Firewall CIP **"
fi


for ip in $CIP ; do
   iptables -A INPUT -s $ip -j CIP
#   iptables -A FORWARD -s $ip -j CIP
done



#iptables -A CIP -p TCP -m tcp --dport 22  -j  ACCEPT
#iptables -A CIP -p TCP -m tcp --dport 80  -j  ACCEPT
#iptables -A CIP -p TCP -m tcp --dport 3306  -j  ACCEPT
#iptables -A CIP -p UDP -m udp --dport 3306  -j  ACCEPT



iptables -A CIP -j  ACCEPT



#######################################################################


#######################################################################
WK="0"

PASSLOG="0"

if [ "$WK" = "1" ]; then
   echo -n "Getting the WK Block List..."
   YIP="$YIP
      `cat /root/fw/wk-ip | \
      awk '/^[1-9]/ {print $1 }'`"
   echo "ok"
fi

iptables -N YIP

if [ "$PASSLOG" = "1" ]; then
   iptables -A YIP -j LOG --log-prefix "** Firewall YIP **"
fi


for ip in $YIP ; do
#   iptables -A INPUT -s $ip -j YIP
   iptables -A FORWARD -s $ip -j YIP
done



#iptables -A YIP -p TCP -m tcp --dport 22  -j  ACCEPT
iptables -A YIP -p TCP -m tcp --dport 80  -j  ACCEPT


#######################################################################

BK="1"

NPASSLOG="0"

if [ "$BK" = "1" ]; then
   echo -n "Getting the BK Block List..."
   NIP="$NIP
      `cat /root/fw/bk-ip | \
      awk '/^[1-9]/ {print $1 }'`"
   echo "ok"
fi

iptables -N NIP

if [ "$NPASSLOG" = "1" ]; then
   iptables -A NIP -j LOG --log-prefix "** Firewall NIP **"
fi


for ip in $NIP ; do
#   iptables -A INPUT -s $ip -j NIP
   iptables -A FORWARD -s $ip -j NIP
done


iptables -A NIP -j  DROP


#######################################################################




iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 127.0.0.0/255.0.0.0 -o ! lo -j DROP
iptables -A OUTPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW -j ACCEPT


#iptables -A INPUT -p TCP -m tcp --dport 80  -j  ACCEPT
#iptables -A FORWARD -p TCP -m tcp --dport 80  -j  ACCEPT

#iptables -A INPUT -p tcp -m tcp  -j DROP  

#iptables -A FORWARD -p tcp -m tcp  -j DROP  

#iptables -A FORWARD -j DROP

clear-fire-wall

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t filter -F
iptables -t nat -F
iptables -t filter -X
iptables -t nat -X