#!/bin/bash ############################################################## # File Name: /sources/mail.sh # Version: V1.0 # Author: sanshi # Organization: https://www.9133w.cn/sources/ # Created Time : 2022-05-26 09:57:20 # Description: ############################################################## tools_init_info="/sanshi/tools.txt" soft_arr=(nginx_ver httpd_ver haproxy_ver \ mysql8_ver mysql57_ver mysql56_ver \ redis_ver kafka_ver zookeeper_ver jenkins_ver \ elasticsearch_ver java_ver maven_ver \ docker_ver k8s_ver gitlab_ver zabbix_ver \ prometheus_ver postgresql_ver openresty_ver \ mongo_ver consul_ver rabbitmq_ver php_ver \ git_ver nodejs_ver npm_ver grafana_ver) #source# ng_arr=(`curl -sSL http://nginx.org/en/download.html |grep -oP '(?<=nginx-)[\d+.]+.tar.gz' | uniq | sed 's/.tar.gz//g'`) httpd_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/ | grep -oP '(?<=href="httpd-)\d+.\d+.\d+' | uniq`) haproxy_arr=(`curl -sL http://download.openpkg.org/components/cache/haproxy/ | grep -oP '(?<=href="haproxy-)\d+.\d+.\d+' | uniq`) php_arr=(`curl -sL https://www.php.net/downloads.php | grep -oP '(?<=distributions/php-)\d+.\d+.\d+' | uniq`) # python_arr=(`curl -sL http://download.openpkg.org/components/cache/python/ | grep -oP '(?<=Python-)\d+.\d+.\d+' | uniq`) mysql_arr=(`curl -sSL https://downloads.mysql.com/archives/community/ | grep -oP '(?<=option value=")[\d+].[\d+].\w+'`) postgresql_arr=(`curl -sL http://download.openpkg.org/components/cache/postgresql/ | grep -oP '(?<=postgresql-)\d+.\d+' | uniq`) redis_arr=(`curl -sSL https://download.redis.io/releases/ | grep -oP '(?<=href="redis-)\d+.\d+.\w+'`) kafka_arr=(`curl -sSL https://kafka.apache.org/downloads | grep -oP '(?<=span id=")[\w+.]+'`) zookeeper_arr=(`curl -ssL https://zookeeper.apache.org/documentation.html | grep -oP '(?<=ZooKeeper )[\d+.]+'`) es_arr=(`curl -m20 -sL https://www.elastic.co/cn/downloads/past-releases#elasticsearch | grep -oP '(?<=id="elasticsearch-)[\d+.]+'`) jdk_arr=(`curl -sL https://www.oracle.com/java/technologies/downloads/archive/ | grep -oP '(?<=Java SE )[\d+.]+'`) maven_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/ | grep -oP '(?<=href=")\d+.\d+.\d+'`) docker_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/ | grep -oP '(?<=docker-)\d+.\d+.\d+' | uniq | sort -t. -k1nr -k3nr`) k8s_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/Packages/ | grep -oP '(?<=kubeadm-)\d+.\d+.\d+' | uniq |sort -t. -k2nr -k3nr`) gitlab_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ | grep -oP '(?<=gitlab-ce-)[\d+.]+' | uniq | sort -t. -k1nr -k2nr`) zabbix_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/ | grep -oP '(?<=title=")[\d+.]+'`) prometheus_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/prometheus/LatestRelease/ | grep -oP '(?<=prometheus-)\d+.\d+.\d+' | uniq`) postgresql_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/postgresql/source/ | grep -oP '(?<=title="v)\d+.[\d+.]+' | uniq | sort -t. -k1nr -k2nr`) openresty_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/openresty/centos/7Server/x86_64/ | grep -oP '(?<=openresty-)[\d+.]+-\d' | uniq`) mongo_arr=(`curl -sL https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/ | grep -oP '(?<=title="el7-)\d+.\d+'`) consul_arr=(`curl -sL https://www.consul.io/downloads | grep -oP '(?<=Consul )\d+.\d+.\d+'`) rabbitmq_arr=(`curl -sL https://www.rabbitmq.com/changelog.html | grep -oP '(?<=centre">)\d+.\d+.\d+'`) git_arr=(`curl -sL http://download.openpkg.org/components/cache/git/ | grep -oP '(?<=git-)\d+.\d+.\d+' | uniq`) gitlab_arr=(`curl -sL https://packages.gitlab.com/gitlab/gitlab-ce | grep -oP '(?<=gitlab-ce-)\d+.\d+.\d+' | uniq`) node_arr=(`curl -sL http://download.openpkg.org/components/cache/node/ | grep -oP '(?<=node-)v\d+.\d+.\d+' | uniq`) npm_arr=(`curl -sL http://download.openpkg.org/components/cache/npm/ | grep -oP '(?<=href=")v\d+.\d+.\d+' | uniq`) grafana_arr=(`curl -sL https://grafana.com/grafana/download | grep -oP '(?<=grafana-enterprise","version":")[\d+.]+"' | uniq | grep -oP '[\d+.]+'`) jenkins_arr=(`curl -sSL https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/ | grep -oP '(?<=href=")[\d+.]+' | grep ^[0-9]`) #nginx# nginx_ver=${ng_arr[1]} #httpd# httpd_ver=${httpd_arr[-1]} #haproxy# haproxy_ver=${haproxy_arr[-1]} #php# php_ver=${php_arr[0]} #python# #python_ver=${python_arr[-1]} #mysql# mysql8_arr=() mysql57_arr=() mysql56_arr=() for i in ${mysql_arr[@]}; do echo $i | grep ^8 && mysql8_arr[${#mysql8_arr[@]}]=$i echo $i | grep ^5.7 && mysql57_arr[${#mysql57_arr[@]}]=$i echo $i | grep ^5.6 && mysql56_arr[${#mysql56_arr[@]}]=$i done >/dev/null mysql8_ver=${mysql8_arr[0]} mysql57_ver=${mysql57_arr[0]} mysql56_ver=${mysql56_arr[0]} #postgresql# postgresql_ver=${postgresql_arr[-1]} #redis# redis_ver=${redis_arr[-1]} #kafka# kafka_ver=${kafka_arr[0]} #zookeeper# zookeeper_ver=${zookeeper_arr[0]} #elasticsearch# elasticsearch_ver=${es_arr[0]} #java# java_ver=${jdk_arr[0]} #maven# maven_ver=${maven_arr[-1]} #docker-ce# docker_ver=${docker_arr[0]} #kubernetes# k8s_ver=${k8s_arr[0]} #gitlab-ce# gitlab_ver=${gitlab_arr[0]} #zabbix# zabbix_ver=${zabbix_arr[-1]} #prometheus# prometheus_ver=${prometheus_arr[-1]} #postgresql# postgresql_ver=${postgresql_arr[0]} #openresty# openresty_ver=${openresty_arr[-1]} #mongo# mongo_ver=${mongo_arr[-1]} #consul# consul_ver=${consul_arr[-1]} #rabbitmq# rabbitmq_ver=${rabbitmq_arr[0]} #git# git_ver=${git_arr[-1]} #gitlab# gitlab_ver=${gitlab_arr[0]} #nodejs# nodejs_ver=${node_arr[-1]} #npm# npm_ver=${npm_arr[-1]} #grafana# grafana_ver=${grafana_arr[0]} #jenkins# jenkins_ver=${jenkins_arr[-1]} for tools in ${soft_arr[@]} do echo -en "${tools%_*} 目前最新版本 : " eval echo "\$$tools" done | column -t > /tmp/tools.txt while read line do s_name=`echo $line | awk '{print $1}'` s_now_vers=`echo $line | awk '{print $NF}'` s_ago_vers=`grep "^$s_name " $tools_init_info | awk '{print $NF}'` if [ -z "$s_ago_vers" ] then echo "$line" >> $tools_init_info elif [ $s_now_vers != "$s_ago_vers" ] then number_name=`nl $tools_init_info | grep "$s_name " | awk -v tag="$s_ago_vers" '$NF==tag{print $1}'` sed -i "${number_name}d" $tools_init_info echo '\/ \/ \/ \/ \/ 今天更新 \/ \/ \/ \/ \/ \/ \/' >> $tools_init_info echo "${line}" >> $tools_init_info echo '/\ /\ /\ /\ /\ 今天更新 /\ /\ /\ /\ /\ /\ /\' >> $tools_init_info fi done < /tmp/tools.txt cat $tools_init_info | mail -s '互联网常用工具软件版本更新情况' yourmail@mail.com #邮件地址改为自己的。注意配置smtp cat /tmp/tools.txt > $tools_init_info exit 0