您的位置:首页 > 运维架构 > Shell

shell实现多进程,对数据库进行备份。

2015-09-11 09:26 645 查看
#!/bin/bash
PATH=$PATH:$HOME/binexport PATH=/veris/usr/bin:/veris/usr/sbin:$PATHexport LD_LIBRARY_PATH=/veris/usr/lib64:$LD_LIBBRARY_PATH
THREAD_NUM=3tmp_fifofile="/tmp/$$.fifo"mkfifo "$tmp_fifofile"exec 6<>"$tmp_fifofile"rm $tmp_fifofilefor ((i=0;i<$THREAD_NUM;i++))do        echodone >&6
db_port=5310db_list=`mysql -h127.0.0.1 -uroot -pxxxxx -A -P ${db_port} -ss -e "select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME not in('information_schema','mysql','test','performance_schema')"`for db_name in ${db_list}do        read -u6        {                echo ${db_name}                mysqldump -h127.0.0.1 -uroot  -pxxxxx -P${db_port} -B -R --default-character-set=utf8 --opt --max-allowed-packet=64M --net_buffer_length=163840  --single-transaction -f ${db_name} > /tmp/${db_port}.${db_name}.sql                echo >&6        } &        pid=$!        echo $piddone
waitexec 6>&-exit 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: