2012-11-09, 04:50 PM
سلام دوستان
من یه شل اسکریپ دارم که از mysql بک آپ میگیره.
اما بعد از مدتی آرشیو ها زیاد میشه و باید دستی پاک کنم.
من چیکار کنم که اتوماتیک مثلا از 10 روز 7 روز رو پاک کنه؟ یا 2 تا رو جا بزاره بقیه رو پاک کنه؟
من یه شل اسکریپ دارم که از mysql بک آپ میگیره.
اما بعد از مدتی آرشیو ها زیاد میشه و باید دستی پاک کنم.
من چیکار کنم که اتوماتیک مثلا از 10 روز 7 روز رو پاک کنه؟ یا 2 تا رو جا بزاره بقیه رو پاک کنه؟
کد :
#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# Author: Vivek Gite; under GNU GPL v2.0+
NOW=$(date +"%d-%m-%Y")
DEST="/home/mysql".${NOW}-$(date +"%T")
# set mysql login info
MUSER="root" # Username
MPASS='' # Password
MHOST="localhost" # Server Name
# guess binary names
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
[ ! -d "${DEST}" ] && mkdir -p "${DEST}"
# get all db names
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=${DEST}/mysql-${db}.${NOW}-$(date +"%T").gz
# get around error
$MYSQLDUMP --single-transaction -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done