shell programado MySQL copia de seguridad Subir siete vacas nube

datos / / directorio de copia de seguridad / backup de MySQL script / usr / local / mysql / script nombre del script mysql_data_backup.sh que aquí hay una ruta de escritura personal, buscamos Nota modificar: Se recomienda al usuario de base de datos para crear una cuenta de usuario y la contraseña de una copia de seguridad especial

Siete vacas nube enlace de invitación, requerido por los socios de enlace de invitación puede hacer clic para comprar, una gran cantidad de concesiones, haga clic en el enlace

Crear siete vacas nube  Si no desea cargar siete vacas nube de poner la secuencia de comandos en el interior removida como una  cuenta de acceso -> Objeto de almacenamiento -> llega a utilizar el nuevo espacio de abajo sk ak

qshell instalación

进入root 目录
cd 空格
新建文件夹qshell
mkdir qshell
然后下载对应版本 qshell 我们Linux 是 64位的
查看命令如下:
uname -a
显示如下,看到我是64位:
Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

 

Luego descargamos la versión correspondiente: https: //github.com/qiniu/qshell

cd qshell
wget http://devtools.qiniu.com/qshell-linux-x64-v2.4.0.zip?ref=developer.qiniu.com
unzip qshell-linux-x64-v2.4.0.zip
重新命名
mv qshell-linux-x64-v2.4.0 qshell
给权限
chmod +x qshell
然后查看下目录,方便设置环境变量
pwd
/root/qshell
设置环境变量,有三种方式,我们采用对所有系统用户生效,永久生效
vi /etc/profile
在末尾添加如下,注意自己 qshell 的路径
export PATH=$PATH:/root/qshell
执行生效
source /etc/profile
然后执行
qshell
会有很多帮助命令列表,这样就代表添加环境变量成功了

 

A continuación, empezar con la configuración qshell

首先我们需要添加公钥密钥和账号:
命令如下,请注意更换成自己的密钥
ak 和 sk https://portal.qiniu.com/user/key 查看, name 代表自己的七牛账号
qshell account ak sk name
添加完成后使用
qshell user ls 来查看用户列表

 

script de prueba

cd  /usr/local/mysql/script
./mysql_data_backup.sh

 

tareas regulares crontab -e copia de seguridad de la tarde

01 00 * * * /usr/local/mysql/script/mysql_data_backup.sh >/tmp/log_backup_mysql_$(date +"\%Y\%m\%d\%H\%M\%S").log

 

Aquí está la secuencia de comandos

#!/usr/bin/env bash
# Function description:
# Backup MySQL databases for each, backup schema and schema with data in one action.

# Usage:
# bash mysql_bash_backup.sh

# Every friday night execute
# 58 23 * * 5 /usr/local/mysql/script/mysql_data_backup.sh >/tmp/log_backup_mysql_$(date +"\%Y\%m\%d\%H\%M\%S").log


USER="`id -un`"
LOGNAME="$USER"
if [ $UID -ne 0 ]; then
    echo "WARNING: Running as a non-root user, \"$LOGNAME\". Functionality may be unavailable. Only root can use some commands or options"
fi

old_PATH=$PATH
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

mysql_host=127.0.0.1
mysql_port=3306
mysql_username=root   #数据库用户
mysql_password=root   #数据库密码
mysql_basedir=/usr/local/mysql
save_old_backups_for_days=13
mysql_bin_mysql=${mysql_basedir}/bin/mysql
mysql_bin_dump=${mysql_basedir}/bin/mysqldump
mysql_backup_dir=/data/backup/mysql

date_format_type_dir=$(date '+%Y%m%d%H%M%S')

echo "--------------------------------"
echo "=> do backup scheduler start at $(date +%Y%m%d%H%M%S)"

# TODO, check user privileges
# check user if have 'RELOAD,EVENT' privileges,etc
# backup role
# GRANT ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,DROP,EXECUTE,INDEX,INSERT,LOCK TABLES,SELECT,UPDATE,SHOW VIEW,RELOAD,EVENT ON *.* TO 'backup_user'@"%";
# FLUSH PRIVILEGES;

[ -d ${mysql_basedir} ] && mysql_datadir=${mysql_basedir}/data || mysql_datadir=/var/lib/mysql
[ -x ${mysql_bin_mysql} ] || mysql_bin_mysql=mysql
[ -x ${mysql_bin_dump} ] || mysql_bin_dump=mysqldump
[ -d ${mysql_backup_dir}/${date_format_type_dir} ] || mkdir -p ${mysql_backup_dir}/${date_format_type_dir}

mysql_databases_list=""
if [ -d ${mysql_datadir} ]; then
    mysql_databases_list=`ls -p ${mysql_datadir} | grep / |tr -d /`
else
    mysql_databases_list=$(${mysql_bin_mysql} -h${mysql_host} -P${mysql_port} -u${mysql_username} -p${mysql_password} -e "show databases;" )
fi

saved_IFS=$IFS
IFS=' '$'\t'$'\n'
for mysql_database in ${mysql_databases_list};do
    if echo ${mysql_database} | grep -Eqvi "^database$|sys|information_schema|performance_schema|^mysql$" ; then
      ${mysql_bin_dump} -u${mysql_username} -p${mysql_password} --host=${mysql_host} --port=${mysql_port}\
          --routines --events --triggers --single-transaction --flush-logs \
          --ignore-table=mysql.event --databases ${mysql_database} |& \
          gzip > ${mysql_backup_dir}/${date_format_type_dir}/${mysql_database}.sql.gz

      [ $? -eq 0 ] && echo "${mysql_database} backup successfully! " || \
          echo "${mysql_database} backup failed! "
      /bin/sleep 2

      ${mysql_bin_dump} -u${mysql_username} -p${mysql_password} --host=${mysql_host} --port=${mysql_port}\
           --routines --events --triggers --single-transaction --flush-logs \
           --ignore-table=mysql.event --databases ${mysql_database} --no-data |& \
           gzip > ${mysql_backup_dir}/${date_format_type_dir}/${mysql_database}_schema.sql.gz

      [ $? -eq 0 ] && echo "${mysql_database} schema backup successfully! " || \
          echo "${mysql_database} schema backup failed! "
      /bin/sleep 2
    fi
done
IFS=${saved_IFS}

save_days=${save_old_backups_for_days:-10}
need_clean=$(find ${mysql_backup_dir} -mtime +${save_days} -exec ls '{}' \;)
    if [ ! -z "${need_clean}" ]; then
        find ${mysql_backup_dir} -mtime +${save_days} -exec rm -rf '{}' \;
        echo "$need_clean have been cleaned! "
    else
        echo "nothing can be cleaned, skipped! "
    fi

echo "=> do backup scheduler finished at $(date +%Y%m%d%H%M%S)"
echo -e "\n\n\n"

#上传七牛start
echo ${mysql_backup_dir}/${date_format_type_dir} "\n\n\n" ccc "\n\n\n"
if [ -d ${mysql_backup_dir}/${date_format_type_dir} ]; then
   bakFile=${mysql_backup_dir}/${date_format_type_dir}
   zipFile="${mysql_backup_dir}/mysql_${date_format_type_dir}.zip"
   zip -rP "123456"  ${zipFile} ${bakFile}    #zip 密码压缩
   /root/qshell/qshell rput test "mysql_qn_${date_format_type_dir}.zip" ${zipFile} && rm -f ${zipFile}  #上传七牛云  test 七牛云账号
fi
#上传七牛over

declare -x PATH=${old_PATH}

 

Bueno, a esto, hay un problema de comunicación de bienvenida

La tecnología del mar blog en  http://www.ypyunedu.com/article/95

Publicados 263 artículos originales · ganado elogios 46 · vistas 370 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_27229113/article/details/105071880
Recomendado
Clasificación