Category - 维护脚本相关

2024-06-19 16:04:41    71    0    0
  1. #!/bin/bash
  2. # 域名列表
  3. domains=("www.qq.com" "www.qq.com.cn" "www.ww.cn")
  4. #查询/etc/nginx/conf.d/*.conf配置文件中的域名,并去重,sh不支持数组,如果用这种方式 需要bash环境运行
  5. #domains=($(grep -hroP 'server_name\s+\K\S+' /etc/nginx/conf.d/*.conf | tr -d ';' | sort -u))
  6. # 企业微信群聊机器人的 Webhook 地址
  7. webhook_url="https://123/123"
  8. # 循环遍历域名列表
  9. for domain in "${domains[@]}"; do
  10. echo "$domain"
  11. # 查询域名的证书有效期
  12. expiration_date=$(openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d "=" -f 2)
  13. echo "Certificate expiration for $domain: $expiration_date"
  14. # 将日期转换为时间戳
  15. expiration_timestamp=$(date -d "$expiration_date" +%s)
  16. # 当前时间戳
  17. current_timestamp=$(date +%s)
  18. # 计算剩余天数
  19. remaining_days=$(( (expiration_timestamp - current_timestamp) / 86400 ))
  20. # 如果剩余天数小于等于10天,则发送警告消息到企业微信群聊机器人
  21. if [ $remaining_days -le 10 ]; then
  22. subject="SSL Certificate Expiration Warning - $domai
2024-07-10 15:52:50    108    0    0
  1. #命令备忘
  2. #当前目录下,文件和文件夹按大小排序并显示大小
  3. du -sh * | sort -hr
  4. #显示当前目录下所有文件夹的大小
  5. du --max-depth=1 -h
  6. #查看一个进程的父进程
  7. lsof -p <PID>
  8. pstree -p <PID>
  9. pstree -p | grep "<PID>"
  10. #系统日志指定大小和保留时间
  11. journalctl --vacuum-time=2d
  12. journalctl --vacuum-size=500M
  13. #npm源
  14. npm install --registry=https://registry.npm.taobao.org
  15. npm install --registry=https://registry.npmmirror.com
  16. npm install --registry=https://mirrors.cloud.tencent.com/npm/
  17. #phpinfo
  18. <?php
  19. phpinfo();
  20. ?>
  21. #docker打tag并推送至远程仓库 harbor.net替换为仓库地址
  22. docker build --tag imagename:v$BUILD_ID .
  23. docker tag imagename:v$BUILD_ID harbor.net/imagename:v$BUILD_ID
  24. docker push harbor.net/imagename:v$BUILD_ID
2024-06-20 13:30:15    70    0    0
  1. #!/bin/sh
  2. #关闭SeLinux
  3. sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux
  4. setenforce 0
  5. #关闭防火墙
  6. systemctl stop firewalld
  7. systemctl disable firewalld
  8. #安装gcc gcc-c++等基础组件
  9. tar zxvf package.tar.gz
  10. cd package
  11. rpm -Uvh *.rpm --nodeps --force
  12. cd ../
  13. #安装apache
  14. #安装apr
  15. tar zxvf apr-1.7.0.tar.gz
  16. cd apr-1.7.0
  17. ./configure --prefix=/usr/local/apr
  18. make && make install
  19. cd ../
  20. #安装apr-util
  21. tar zxvf apr-util-1.6.1.tar.gz
  22. cd apr-util-1.6.1
  23. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  24. make && make install
  25. cd ../
  26. #安装pcre
  27. tar zxvf pcre-8.00.tar.gz
  28. cd pcre-8.00
  29. ./configure --prefix=/usr/local/pcre
  30. make && make install
  31. cd ../
  32. #安装httpd
  33. tar zxvf httpd-2.4.48.tar.gz
  34. cd httpd-2.4.48
  35. ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
  36. make && make install
  37. cd ../
  38. #设置开机自启动
  39. cp -r /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
  40. sed -i '1 i\#description:Start and stop the Apache HTTP Server' /etc
2024-06-19 16:04:41    29    0    0
  1. #!/bin/bash
  2. # 创建日志文件目录
  3. log_dir="/data/update_logs"
  4. #mkdir -p "$log_dir"
  5. # 日志文件路径,按日切割
  6. log_file="$log_dir/update_$(date +%Y%m%d).log"
  7. # 获取当前时间
  8. current_time=$(date +"%Y-%m-%d %H:%M:%S")
  9. # 获取后端镜像仓库中最新的版本号(去掉前缀"v")
  10. v1=$(curl -u user:passwd -X GET "https://harbor.test.com.cn/api/v2.0/projects/children/repositories/tx-svc-wxchat-online/artifacts" | jq -r 'sort_by(.push_time) | .[-1].tags[0].name' | sed 's/v//')
  11. # 获取当前正在运行的后端容器的版本号
  12. v2=$(docker inspect --format='{{ index .Config.Image }}' tx-svc-wxchat-online | awk -F':' '{print $NF}' | cut -c2-)
  13. # 检查后端是否需要更新
  14. if [ "$v1" -gt "$v2" ]; then
  15. echo "$current_time 需要更新,后端最新版本号:$v1" >> "$log_file"
  16. # 执行后端更新操作
  17. ansible-playbook /data/update_server.yaml --extra-vars "tag=$v1" >> "$log_file" 2>&1
  18. # 发送企业微信消息
  19. webhook_url="https://123/123"
  20. message="后端镜像更新成功,新版本:$v1"
  21. curl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}"
Footer