SAMBA ¸¶¿îÆ® µð½ºÅ©·Î ¹é¾÷
[root@chonnom root]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext3 71G 6.0G 61G 9% / tmpfs tmpfs 947M 0 947M 0% /dev/shm //KB2.SMILESERV.COM/KB212308 cifs 100G 1.5G 99G 2% /SMILESERV_100G_BACKUP |
backup_info (¹é¾÷ÇÒ µ¥ÀÌŸÁ¤º¸)
#!/bin/bash
today=`date +%Y-%m%d`; sysdtime=`date +%Y-%m%d-%H%M`; Mount_DIR=/SMILESERV_100G_BACKUP
# Rsync Clon Backup rsync_src=/home
rsync_dst=$Mount_DIR/rsync
# MYSQL Backup mysql_rootpasswd="root"; mysql_host="localhost" mysql_backup_period=5; reportmailto="";
mysql_data_src=/usr/local/mysql/var; mysql_dst="$Mount_DIR/tar/mysql";
mysql_dump="/usr/local/mysql/bin/mysqldump"; mysql_show="/usr/local/mysql/bin/mysqlshow";
# Directory Backup home_backup_period=30 full_backup_week="Sun|ÀÏ" home_src="/home" home_dst="$Mount_DIR/tar/home" home_dst_full="$Mount_DIR/tar/home/full"; home_dst_difference="$Mount_DIR/tar/home/difference";
|
config (SAMBA ¸¶¿îÆ®µÈ°÷ÀÇ Á¢¼ÓÁ¤º¸)
#!/bin/bash username="mojily"; password="********"; backup_serverip="KB2.SMILESERV.COM"; |
home_tar.sh (Ȩ¹é¾÷ : 1ÁÖÀÏ¿¡ 1¹ø Àüü¹é¾÷, ³ª¸ÓÁö Â÷µî¹é¾÷)
#!/bin/sh
source $(dirname $0)/config source $(dirname $0)/backup_info
if [ ! -d $Mount_DIR ]; then mkdir -p $Mount_DIR; fi
if [ ! -d "$home_dst_full" ]; then mkdir -p $home_dst_full; fi;
if [ ! -d "$home_dst_difference/$today" ]; then mkdir -p $home_dst_difference/$today; fi;
# Áö³ µ¥ÀÌŸ »èÁ¦ find $home_dst_full -ctime +$home_backup_period \-exec rm -rf {} \; find $home_dst_difference -ctime +$home_backup_period \-exec rm -rf {} \;
# ¹é¾÷½ÃÀÛ cd $home_src;
for home_name in $(ls); do if [ $home_name = "lost+found" ]; then continue; fi;
if [ $home_name = "$(echo $Mount_DIR |cut -d"/" -f3)" ]; then continue; fi;
if [ -d "$home_src/$home_name" ] ; then full_backup_date=`echo $(date +%a) |egrep $full_backup_week` if [ ! -z $full_backup_date ]; then tar -pczf "$home_dst_full/$home_name-$sysdtime.tar.gz" "$home_name"; else tar -N "`cat $home_dst/last`" -pczf "$home_dst_difference/$today/$home_name-$sysdtime.tar.gz" "$home_name"; fi;
fi; done; date +"%Y-%m-%d %T" > $home_dst/last; |
mysql_backup.sh (dump ¹é¾÷ ¹× tar ¾ÐÃà¹é¾÷)
#!/bin/bash
source $(dirname $0)/config source $(dirname $0)/backup_info
if [ ! -d "$mysql_dst" ]; then mkdir -p $mysql_dst; fi;
mysql_backupdir="${mysql_dst}/$today"; find $mysql_dst -ctime +$mysql_backup_period \-exec rm -rf {} \;
db_compress="0" not_dump_db="test|test2" mysql_connect="-h $mysql_host -u root -p$mysql_rootpasswd"; mysql_DBs=`$mysql_show $mysql_connect 2>/dev/null | egrep -v "(${not_dump_db}|Databases|\+)" | awk '{print $2}'` mysql_dump_work() { mysql_each_DB="$1" mysql_dump_file="${mysql_backupdir}/${mysql_each_DB}-${sysdtime}.sql" $mysql_dump $mysql_connect $mysql_each_DB > $mysql_dump_file if [ "$db_compress" = "1" ] ; then gzip -f9 $mysql_dump_file fi }
if [ "$mysql_DBs" != "" ] ; then
if [ ! -d "$mysql_backupdir" ] ; then mkdir -p "$mysql_backupdir" chmod 700 "$mysql_backupdir" fi for mysql_DB in $mysql_DBs ; do mysql_dump_work $mysql_DB done
else ## MySQLÀÌ °¡µ¿ÁßÀÌÁö ¾ÊÀ» °æ¿ì ## ÁÖ) ¾Æ·¡¿¡¼ ${IFS}=$IFS HTML¿¡¼ <BR>°ú °°À½. ##
if [ "$reportmailto" != "" ] ; then mailsubject="dailydump.cron report [${HOSTNAME}]" mailmessages="MySQLÀÌ °¡µ¿ÇÏÁö ¾Ê°Å³ª DB°¡ ¾ø½À´Ï´Ù.${IFS}MySQL ¼¹ö(${mysql_host}) È®ÀÎÇϼ¼¿ä!!!" echo "$mailmessages" | mail -s "$mailsubject" "$reportmailto" >/dev/null 2>&1 fi fi
# ¾ÐÃà ¹é¾÷ tar jcvfp "$mysql_backupdir/All_Database_${sysdtime}.tar.bz2" "$mysql_data_src"; |
rsync_backup.sh (µ¿±âÈ ¹é¾÷)
#!/bin/bash source $(dirname $0)/config source $(dirname $0)/backup_info
if [ ! -d $rsync_dst ] ; then mkdir -p $rsync_dst; fi
rsync -tripD --exclude-from=$(dirname $0)/exclude_list --delete $rsync_src $rsync_dst |
¡Ø exclude_list (µ¿±âÈÇÒ Æú´õ¿¡¼ Á¦¿ÜÇÒ ÆÐÅÏ)