存档六月 2021

check_https_检测证书是否到期.sh

#!/bin/bash
# 检测https证书有效期
# 使用Telegram通知证书少于10天的网址
# Telegram需要申请机器人 具体请参阅zabbix 文档有关telegram的讲解
# 复制到/data/shell/目录下 mkdir -p /data/shell/ssh_url.txt 创建域名文件
# url.txt 被检测的网址放到里面即可
# www.baidu.com 
# www.qq.com
# crontab -e 里面添加 0 11 * * * /data/shell/check_https.sh &  \\ 每天11点检测
Token='1159125500:AAEnBcC8Vt_BKOXIIZNabpDhyRN6zwPMwcY9'
ChatID='-4774704889'
source /etc/profile

while read line; do
    end_time=$(echo | timeout 1 openssl s_client -servername $line -connect $line:443 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | awk -F '=' '{print $2}' )
    ([ $? -ne 0 ] || [[ $end_time == '' ]]) # &&  exit 10

    end_times=`date -d "$end_time" +%s `
    current_times=`date -d "$(date -u '+%b %d %T %Y GMT') " +%s `

    let left_time=$end_times-$current_times
    days=`expr $left_time / 86400`

    if [ $days -eq 0 ];then
        continue
    fi

    if [ $days -lt 0 ] ; then
        curl -X GET "https://api.telegram.org/bot$Token/sendMessage" -d "chat_id=$ChatID &text=$line的证书已过期 过期天数为 $days 天"
        continue
    fi

    if [ $days -lt 10 ] ; then
        curl -X GET "https://api.telegram.org/bot$Token/sendMessage" -d "chat_id=$ChatID &text=$line的证书还剩 $days 天过期 存在风险"
    fi


done < /data/shell/ssh_url.txt

curl -X GET "https://api.telegram.org/bot$Token/sendMessage" -d "chat_id=$ChatID &text=所有证书均已检测完毕!!!"


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