#!/bin/ashUSER="root"NEWUSER="xxx"PASSWORD="xxxx"NEWPASSWORD="xxxxxxxxxx"DATE=`date +%Y/%m/%d`OUTPUT
#!/bin/ashUSER="root"NEWUSER="xxx"PASSWORD="xxxx"NEWPASSWORD="xxxxxxxxxx"DATE=`date +%Y/%m/%d`OUTPUT="/mnt/data/database/$DATE"OPERATOR="export"FILES="/tmp/database/*"DATABASEPATH="/mnt/db/mysql"TMPPATH="/mnt/db/tmp"echo $OUTPUT[ ! -d "$OUTPUT" ] && { echo "mkdir $OUTPUT" mkdir -p $OUTPUT}#数据为初始化action_init(){ flag=$(uci get -q system.@general[0].databaseinit) [ ! -z "$flag" ] && return [ -z "$flag" ] && { section=$(uci get -q system.@general[0]) [ -z "$section" ] &&{ uci add system general } uci set system.@general[0].databaseinit=1 uci commit system } [ -d "$DATABASEPATH" ] && rm -rf $DATABASEPATH [ -d "$TMPPATH" ] && rm -rf $TMPPATH sed -i "s,^datadir.*,datadir = /"$DATABASEPATH/",g" /etc/my.cnf sed -i 's,^tmpdir.*,tmpdir = "/mnt/db/tmp",g' /etc/my.cnf [ ! -d "$DATABASEPATH" ] && mkdir -p $DATABASEPATH [ ! -d "$TMPPATH" ] && mkdir -p $TMPPATH mysql_install_db --force /etc/init.d/mysqld start /etc/init.d/mysqld enable mysqladmin -u $USER password "$PASSWORD" [ -f /tmp/adduser.sql ] && rm -rf /tmp/adduser.sql echo "insert into mysql.user(Host,User,Password) values(/"localhost/",/"$NEWUSER/",password(/"$NEWPASSWORD/"));">/tmp/adduser.sql echo "GRANT ALL PRIVILEGES ON *.* TO /"$NEWUSER/"@/"localhost/" IDENTIFIED BY /"$NEWPASSWORD/"; " echo "GRANT ALL PRIVILEGES ON *.* TO /"$NEWUSER/"@/"localhost/" IDENTIFIED BY /"$NEWPASSWORD/"; ">>/tmp/adduser.sql echo "flush privileges;">>/tmp/adduser.sql mysql -u $USER -p$PASSWORD < /tmp/adduser.sql rm -rf /tmp/adduser.sql}#数据库导出action_export(){ databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database` echo "backup start" for db in $databases; do if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then echo "Dumping database: $db" [ -f $OUTPUT/`date +%Y%m%d`.$db.sql ] && { echo "rm sql file" rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql } mysqldump -u $NEWUSER -p$NEWPASSWORD --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql [ -f $OUTPUT/`date +%Y%m%d`.$db.sql.gz ] && { echo "rm file" rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql.gz } gzip $OUTPUT/`date +%Y%m%d`.$db.sql rm -rf $OUTPUT/`date +%Y%m%d`.$db.sql fi done echo "backup end"}#数据库导入action_import(){ for f in $FILES do [ -f "$f" ] &&{ echo "Processing $f file..." mysql -u $NEWUSER -p$NEWPASSWORD < $f } done}[ ! -z "$1" ] && OPERATOR=$1[ ! -z "$2" ] && USER=$2[ ! -z "$3" ] && PASSWORD=$3if [ "$OPERATOR" == "export" ]; then action_exportelif [ "$OPERATOR" == "import" ]; then action_importelif [ "$OPERATOR" == "init" ]; then action_initfi