存档2021

mysql_关于数据库的常用脚本.sh

#/bin/bash
##### 关于 mysql 数据库的常用脚本 ##########

##### 01. mysql 数据库备份01 ##########
# 备份mysql数据库 单个数据库备份  备份所有数据库
# 此脚本为数据库自动备份脚本 可以配合# crontab -e定时任务
# 创建文件的时间
DATE=$(date +"%Y%m%d")
BACKUP_DIR="/data/backup/mysql"
MYSQL_USER="root"
MYSQL_PASSWORD='123456'
MYSQL=/usr/local/mysql/bin/mysql
MYSQLDUMP=/usr/local/mysql/bin/mysqldump
# 除了哪些数据库不备份 剩余都会备份
SKIPDATABASES="Database|information_schema|performance_schema|mysql|test"
# 删除以前数据的天数
RETENTION=60
mkdir -p $BACKUP_DIR/$DATE
databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`

for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz"
done

find $BACKUP_DIR/* -mtime +$RETENTION -delete


##### 02. mysql 数据库备份02 ##########
#/bin/bash
# mysql数据库备份02
# 备份mysql数据库 每一个库单独备份 单是不备份系统数据库 备份目录为 /data/mysql_bak
# 需要加入 mysql 用户名 和 密码
echo "Dump mysql databases..."

DB_USER=root
DB_PASSWORD=123456
DB_PATH=/data/mysql_bak
mkdir -p $DB_PATH

DB_LIST=$(echo "show databases;" | mysql -u$DB_USER -p$DB_PASSWORD)
for db in ${DB_LIST}
do
  if [ $db != "Database" ] && [ $db != "mysql" ] &&
      [ $db != "phpmyadmin" ] && [ $db != "information_schema" ] &&
      [ $db != "performance_schema" ]; then
    echo "  backup "$db
    mysqldump -u$DB_USER -p$DB_PASSWORD --databases $db --lock-all-tables --master-data=2 > $DB_PATH/$db.sql
  fi
done


##### 03. mysql 数据库备份03 指定数据库备份 ################
#!/bin/bash
# 指定数据库备份  导出mysql数据库
while read line
do
    mysqldump -uroot -p123456 --databases $line --lock-all-tables --master-data=2 > /data/mysql_bak/$line.sql
done < a.txt


##### 04. mysql 还原 指定目录下的sql文件 ##################
#/bin/bash
# 还原mysql数据库 还原目录为/data/mysql_bak/ 下的所有数据库
# 需要添加 mysql用户名 密码

DB_USER=root
DB_PASSWORD=123456
DB_PATH=/data/mysql_bak
DB_LIST=$(ls $DB_PATH)

for db in ${DB_LIST}

do
    mysql -u$DB_USER -p$DB_PASSWORD < $DB_PATH/$db

done

##### 05. mysql数据库创建用户名及密码并授权 ################
#!/bin/bash
#同时读取两个文件进行循环
#1.txt存放用户名 2.txt存放密码  这里用户名和数据库名名是同一个
exec 3<"1.txt"
exec 4<"2.txt"
while read line1<&3 && read line2<&4
do
mysql -uroot -p19e9aa229f551984 <<EOF
        grant all privileges on $line1.* to $line1@'localhost' identified by '$line2';
EOF
done


##### 06. mysql 修改字段 ################
#/bin/bash
#修改mysql 中多个数据库 同名的表格中的字段内容
exec 3<"1.txt"
exec 4<"2.txt"
while read line1<&3 && read line2<&4
do
mysql -S -uroot -p123456 <<EOF
use $line1;
update wp_options set option_value = '$line2' where option_id = 1;
update wp_options set option_value = '$line2' where option_id = 2;

EOF
done


##### 07. 修改mysql密码 #############
#/bin/bash
#mysql数据库批量修改数据库密码
while read line
do
mysql -uroot -p123456 <<EOF
update mysql.user set authentication_string=password('4N7pHGdwyahEZDYD') where user='$line';

EOF
done < a.txt


##### 08. 获取wordpress数据库用户名密码 ################
#!/bin/sh
# 获取 wordpress 数据库的名字和用户名及密码
# 一般数据库名和用户名为同一个 如不同 打开注释
while read line
do
#       grep DB_NAME $line/wp-config.php | awk -F "'" '{print $4}'
        grep DB_USER $line/wp-config.php | awk -F "'" '{print $4}'
done < a.txt
echo
while read line
do
        grep DB_PASSWORD $line/wp-config.php | awk -F "'" '{print $4}'
done < a.txt



Frp 及 Coturn 内网穿透





Frp 及 Coturn  内网穿透



Frp 内网穿透 服务器 搭建

    Linux 服务器端

        # getconf LONG_BIT        \\ 查询 Linux 系统位数
        # wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
        # tar zxvf frp_0.37.0_linux_amd64.tar.gz -C /usr/local
        # cd /usr/local
        # mv frp_0.37.0_linux_amd64 frp_0.37
        # cd frp_0.34
        # vim frps.ini                \\ 服务器端主配置文件 替换即可   端口可自定义 没有冲突即可
            [common]
            bind_port = 7000
            host_http_port = 8090        \\ 此为映射内网的http端口 可使用nginx反向代理到127.0.0.1:8090进行访问
            #vhost_https_port = 443

            subdomain_host = frp.syk.my  \\ 绑定个域名 可以在解析下级域名使用 比较繁琐 这条没什么大用 可注释可直接解析域名
            token = xxx                       \\ FRP 身份验证

            dashboard_addr = 0.0.0.0      \\ 服务器端 管理界面
            dashboard_port = 7500          \\ FRPS 服务端 仪表盘的登陆端口 使用 http://IP:7500 访问
            dashboard_user = admin          \\ 登陆用户名 密码
            dashboard_pwd = admin123

            log_level = info              \\ 设置日志显示级别{debug, info, warn, error)
            log_max_days = 999             \\ 设置日志最大天数

        # nohup ./frps -c frps.ini &         \\ 启动命令
        # ps -ef | grep frps
        # ss -tnl                              \\ 7000端口被监听

        # vim /etc/systemd/system/frps.service   \\ 添加 systemd 管理
            [Unit]
            Description=frps
            After=network.target

            [Service]
            ExecStart=/usr/local/frp_0.37/frps -c /usr/local/frp_0.37/frps.ini

            [Install]
            WantedBy=multi-user.target


        # systemctl restart frps
        # ss -tnl

        http://47.91.219.64:7500       \\ 访问


    Linux 客户端

        # getconf LONG_BIT                 \\ 查询 Linux 系统位数
        # wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
        # tar zxf frp_0.37.0_linux_amd64.tar.gz -C /usr/local/
        # cd /usr/local
        # mv frp_0.37.0_linux_amd64 frp_0.37
        # cd frp_0.34
        # vim frpc.ini        \\ 客户端 配置文件
            [common]

            server_addr = 47.91.219.64           \\ 服务器端的ip或域名
            server_port = 7000                    \\ 服务器端口7000
            token = xxx                            \\ FRP 身份验证 与服务器端对上即可

            # frpc.ini 管理界面 127.0.0.1 地址为仅限本地,0.0.0.0为不限。
            admin_addr = 0.0.0.0       \\ 客户端管理界面  192.168.10.11:7400 访问  好像不管用 但无所有可以映射端口
            admin_port = 7400
            admin_user = admin
            admin_pwd = admin123

            # 
            # ------------------- 以下为内网端口穿透应用 写进去需要的即可-------------------
            # 

            # 映射内网ssh 22端口 到 5522端口
            # 使用 #root@frp.nasge.com -p 5522
            # 使用 #ssh 47.91.219.64 5522
            [ssh]
            type = tcp
            local_ip = 127.0.0.1
            local_port = 22          \\ ssh 实际端口
            remote_port = 5522        \\ 映射出的 ssh 端口 使用 ssh 47.91.219.64:5522 来连接


            [web_47.91.219.64]
            type = http
            local_ip = 127.0.0.1
            local_port = 80                \\ 本地的http 端口
            custom_domains = 47.91.219.64   \\ 绑定完整域名或使用ip也可以 域名解析到此使用47.91.219.64:8090访问亦可使用反代
            #subdomain = abc  \\ 如果在服务器中的 subdomain_host 绑定了域名 这里可以使用前缀解析 使用 abc.frp.syk.my 访问


            [web_www.syk.my]             \\ 有多个 web 可以添加多个
            type = http
            local_ip = 127.0.0.1
            local_port = 80
            custom_domains = www.syk.my


            [custom]                   \\ 自定义 tcp 端口 名字而已 随便起
            type = tcp
            local_ip = 127.0.0.1
            local_port = 80               \\ 把本地端口映射 到 服务器的8021端口
            remote_port = 8021


        # nohup ./frpc -c frpc.ini &         \\ 启动命令
        # ps -ef | grep frpc
        # ss -tnl                              \\ 7400端口被监听

        # vim /etc/systemd/system/frpc.service   \\ 添加 systemd 管理
            [Unit]
            Description=frpc
            After=network.target

            [Service]
            ExecStart=/usr/local/frp_0.37/frpc -c /usr/local/frp_0.37/frpc.ini

            [Install]
            WantedBy=multi-user.target


        # systemctl restart frpc
        # ss -tnl


        ssh 47.91.219.64 5522             \\ 可以连接到内网
        http://47.91.219.64:7500           \\ 访问服务器端的管理界面
        http://47.91.219.64:8090            \\ 访问内网的 http 网页 web



    Windows 客户端                                \\ 客户端版本要与服务器版本相同

        https://github.com/fatedier/frp/releases   \\ 下载 frp_0.37.0_windows_amd64.zip 即可
        
        解压 修改客户端配置文件 frpc.ini               \\ 放到此目录下即可 c:\frps_0.37
            [common]
            server_addr = 47.91.219.64
            server_port = 7000
            token = xxx

            [rdp]
            type = tcp
            local_ip = 127.0.0.1
            local_port = 3389
            remote_port = 3389
            custom_domains = 47.91.219.64


            在目录中打开 PowerShell       -->      ./frpc -c ./frpc.ini        \\ 临时测试 启动


        frpc.vbs                                        \\ 创建 开机启动文件
            Set ws = CreateObject("Wscript.Shell")
            ws.run "cmd /c c:\frps_0.37\frps.exe -c c:\frps_0.37\frps.ini",vbhide


        启动文件保存在此目录下即可 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp


        注:

            https://github.com/fatedier/frp/releases                        \\ 开源 git 地址
            https://github.com/fatedier/frp/blob/master/README_zh.md         \\ 官方文档
            https://gofrp.org/docs/                                           \\ 官方文档
            frp_0.37.0_linux_amd64.tar.gz           \\ linux 版本
            frp_0.37.0_windows_amd64.zip             \\ windows 版本



    wol 网卡唤醒工具 安装          \\ 未测试

        # wget http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/w/wol-0.7.1-23.el8.x86_64.rpm
        # rpm -ivh wol-0.7.1-23.el8.x86_64.rpm
        # wol -V

        rpm包下载地址 http://rpmfind.net/linux/rpm2html/search.php?query=wol(x86-64)


    windows 远程多开程序 RDPWrap-v1.6.2.zip       \\ 未测试




Coturn 穿透服务器搭建
 
    # yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel mysql-devel
    # wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
    # wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
    # tar -zxvf turnserver-4.5.0.8.tar.gz
    # cd turnserver-4.5.0.8/
    # ./configure
    # make && make install
    # openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
    # cd /usr/local/etc/
    # cp turnserver.conf.default turnserver.conf
    # vim turnserver.conf                          \\ 追加即可
        listening-device=eth0                       \\ 网卡名字
        listening-port=3478
        tls-listening-port=5349
        listening-ip=内网ip
        relay-ip=内网ip
        external-ip=公网ip
        min-port=49152
        max-port=65535
        lt-cred-mech
        realm=admin
        user=user:123456
        cert=/usr/local/etc/turn_server_cert.pem
        pkey=/usr/local/etc/turn_server_pkey.pem
        no-cli
    # turnserver -a -o -c /usr/local/etc/turnserver.conf      \\ 启动
    # ss -tnl                                                  \\ 3478 5349 被监听 防火墙放行tcp及udp 3478即可
 
    http://192.168.10.12:3478                          \\ 有如下页面 即启动成功
        TURN Server
        use https connection for the admin session
 
    https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/     \\ 检测网站
        STUN or TURN URI:  stun:103.113.61.109:3478
        TURN username:     user
        TURN password:     123456
        -->  Add Server  --> Gather candidates --> 有返回 本机ip即通过