快速登錄任意mysql腳本

#####################

#!/bin/bash

# 獲取輸入參數
ip=""
port=""
database=""
query=""
password_BASE64='WldFeU1HTXhaVFkxWWpnMk56WTFNVFUyTkRObE5qazQK'
while [ $# -gt 0 ]
do
    case $1 in
        -h)
            ip=$2
            shift
            ;;
        -P)
            port=$2
            shift
            ;;
        *)
            if [[ -z "$ip" ]]; then
                if [[ "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
                    ip=$1
                else
                    if ping -c 1 $1 &>/dev/null; then
                        ip=$1
                    else
                        database=$1
                    fi
                fi
            elif [[ -z "$port" ]]; then
                if [[ "$1" =~ ^[0-9]+$ ]]; then
                    port=$1
                else
                    database=$1
                fi
            elif [[ -z "$database" ]]; then
                database=$1
            else
                query="$query $1"
            fi
            ;;
    esac
    shift
done

# 確認默認值
if [[ -z "$ip" ]]; then
    ip="127.0.0.1"
fi

if [[ -z "$port" ]]; then
    port="3306"
fi

# 構造mysql命令
dbpass=$(echo "WldFeU1HTXhaVFkxWWpnMk56WTFNVFUyTkRObE5qazQK"|base64 -d)
mysql_command="mysql -udba -p$dbpass -h $ip -P $port $database $query"

# 執行mysql命令
echo "=================================="
echo "$mysql_command"|sed 's/-p.*k4/-pxxx/g'
echo "=================================="
eval $mysql_command

 

 

 

 

 快速物理備份並壓縮

#!/bin/bash
mysql_port="3308"
host_name=$(hostname)
# 設置保留的備份數量
retain_days=5
# 定義備份目錄
backup_dir="/data/backup/mysql_backup/${host_name}_${mysql_port}"
mkdir -p $backup_dir

# 定義備份文件名
backup_file="mysql_backup_$(date +%Y%m%d%H%M%S).tar.gz"

# 使用innobackupex進行全量備份,並將備份文件壓縮爲.tar.gz格式
/data/glc/soft/percona-xtrabackup-2.4.27-Linux-x86_64.glibc2.12/bin/innobackupex --defaults-file=/data/glc/mysql_3306/conf/my.cnf   --login-path=backup_3306 --no-timestamp --slave-info --stream=xbstream  ${backup_dir} |gzip  > ${backup_dir}/${backup_file}

# 刪除舊的備份文件,只保留最近5天的備份文件
find $backup_dir -maxdepth 1 -name "mysql_backup_*" -type f -mtime +$retain_days -delete

 

 

 

 快速生成32位密碼:

[root@xxx scripts]# cat password_new.sh 
#!/bin/bash 
username=$1
user_password=$(date +%s |sha256sum|base64|head -c 32)
new_time=$(date '+%Y%m%d%H%M%S')
mysql_user='root'
mysql_passwd='root'
mysql_port=3306
mysql_host==''

echo "username: $username"
echo "password: $user_password"
echo "time: $new_time" >> log.password_new
echo "username: $username" >>log.password_new
echo "password: $user_password" >>log.password_new

 

 

 

 

##########################

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章