flyzy博客
分享便宜VPS与网络优惠
搬瓦工

这个shell怎么改成无人值守安装呀

#!/bin/bash # # EHEH Agent Installation Script # # @version                1.0.0 # @date                        2020-09-21 # @copyright: The script baseon nodequery.com/nq-agent project under mit license # # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # Set environment PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _yellow() {     printf ‘\033[0;31;33m%b\033[0m’ “$1” } _blue() {     printf ‘\033[0;31;36m%b\033[0m’ “$1” } clear # Prepare output echo -e “|\n|   EHEH 一键安装\n|   ===================\n|” # Root required if [ $(id -u) != “0” ]; then         echo -e “|   Error: 你需要用root账号执行该脚本\n|”         echo -e “|          安装脚本将创建一个EHEH账号用来定时执行脚本\n|”         exit 1 fi # Parameters required if [ $# -lt 1 ] then         echo -e “|   用法: bash $0 ‘token’\n|”         exit 1 fi #delete exits data echo “|” && read -p “|   安装将删除本地的以前记录  [Y/n] ” input_del if [ -z $input_del ] || [ $input_del == “Y” ] || [ $input_del == “y” ] then   #uninstall   rm -Rf /etc/EHEH   crontab -u EHEH -r 1>/dev/null 2>/dev/null   userdel EHEH     1>/dev/null 2>/dev/null else   exit 1 fi # Check if crontab is installed if [ ! -n “$(command -v crontab)” ] then         # Confirm crontab installation         echo “|” && read -p “|   当前系统没安装Crontab,无法定时推送数据,安装吗??  [Y/n] ” input_variable_install         # Attempt to install crontab         if [ -z $input_variable_install ] || [ $input_variable_install == “Y” ] || [ $input_variable_install == “y” ]         then                 if [ -n “$(command -v apt-get)” ]                 then                         # echo -e “|\n|   Notice: Installing required package ‘cron’ via ‘apt-get'”                     apt-get -y update                     apt-get -y install cron                 elif [ -n “$(command -v yum)” ]                 then                         # echo -e “|\n|   Notice: Installing required package ‘cronie’ via ‘yum'”                     yum -y install cronie                     if [ ! -n “$(command -v crontab)” ]                     then                             # echo -e “|\n|   Notice: Installing required package ‘vixie-cron’ via ‘yum'”                             yum -y install vixie-cron                     fi                 elif [ -n “$(command -v pacman)” ]                 then                         # echo -e “|\n|   Notice: Installing required package ‘cronie’ via ‘pacman'”                     pacman -S –noconfirm cronie                 fi         fi         if [ ! -n “$(command -v crontab)” ]         then             # Show error             echo -e “|\n|   Error: Crontab is required and could not be installed\n|”             exit 1         fi fi # Check if netstat is installed if [ ! -n “$(command -v netstat)” ] then         echo “|” && read -p “|   当前系统没安装netstat,安装吗??  [Y/n] ” input_variable_install         # Attempt to install crontab         if [ -z $input_variable_install ] || [ $input_variable_install == “Y” ] || [ $input_variable_install == “y” ]         then                 if [ -n “$(command -v apt-get)” ]                 then                     apt-get -y update                     apt-get -y install net-tools                 elif [ -n “$(command -v yum)” ]                 then                     yum -y install net-tools                 elif [ -n “$(command -v pacman)” ]                 then                     pacman -S –noconfirm netstat-nat                 fi         fi         if [ ! -n “$(command -v netstat)” ]         then             # Show error             echo -e “|\n|   错误:自动安装netstat过程中出现错误,一般是你取消了安装或源或者依赖问题,请处理后再进行\n|”             echo -e “|\n|        如果你系统是Ubuntu 20.04, 19.10 或者 19.04,且提示错误是libpng12-0缺失,可参考以下解决\n|”             echo -e “|        add-apt-repository ppa:linuxuprising/libpng12|”             echo -e “|        apt update|”             echo -e “|        apt install libpng12-0\n|”             echo -e “|\n|        如果你系统是其他版本的ubuntu,或其他操作系统,请自行搜索解决\n|”             printf  “$(_blue “|   netstat命令没安装好,将无法统计MYSQL基本指标、Web端口信息,如您不需要统计这2项,可不做处理。”) \n\n” #            exit 1         fi fi # Check if netstat is installed if [ ! -n “$(command -v ping)” ] then         echo “|” && read -p “|   当前系统没安装ping,安装吗??  [Y/n] ” input_variable_install         # Attempt to install crontab         if [ -z $input_variable_install ] || [ $input_variable_install == “Y” ] || [ $input_variable_install == “y” ]         then                 if [ -n “$(command -v apt-get)” ]                 then                     apt-get -y update                     apt-get -y install iputils-ping                 elif [ -n “$(command -v yum)” ]                 then                     yum -y install iputils                 elif [ -n “$(command -v pacman)” ]                 then                     pacman -S –noconfirm iputils                 fi         fi         if [ ! -n “$(command -v ping)” ]         then             # Show error              echo -e “|\n|   错误:自动安装ping过程中出现错误,一般是源或者依赖问题,请根据提示修复后再进行\n|”             exit 1         fi fi # Check if cron is running if [ -z “$(ps -Al | grep cron | grep -v grep)” ] then         # Confirm cron service         echo “|” && read -p “|   系统定时任务Crontab没启动,要启动吗? [Y/n] ” input_variable_service         # Attempt to start cron         if [ -z $input_variable_service ] || [ $input_variable_service == “Y” ] || [ $input_variable_service == “y” ]         then                 if [ -n “$(command -v apt-get)” ]                 then                         # echo -e “|\n|   Notice: Starting ‘cron’ via ‘service'”                         service cron start                 elif [ -n “$(command -v yum)” ]                 then                         # echo -e “|\n|   Notice: Starting ‘crond’ via ‘service'”                         chkconfig crond on                         service crond start                 elif [ -n “$(command -v pacman)” ]                 then                         # echo -e “|\n|   Notice: Starting ‘cronie’ via ‘systemctl'”                     systemctl start cronie                     systemctl enable cronie                 fi         fi         # Check if cron was started         if [ -z “$(ps -Al | grep cron | grep -v grep)” ]         then                 # Show error                 echo -e “|\n|   Error: Crontab定时任务没启动\n|”                 exit 1         fi fi # Attempt to delete previous agent if [ -f /etc/EHEH/eheh-agent.sh ] then         # Remove agent dir         rm -Rf /etc/EHEH         # Remove cron entry and user         if id -u EHEH >/dev/null 2>&1         then                 (crontab -u EHEH -l | grep -v “/etc/EHEH/eheh-agent.sh”) | crontab -u EHEH – && userdel EHEH         else                 (crontab -u root -l | grep -v “/etc/EHEH/eheh-agent.sh”) | crontab -u root –         fi fi # Create agent dir mkdir -p /etc/EHEH # Download agent -offical website #echo -e “|   下载脚本到 /etc/EHEH\n|\n|    + $(wget -nv -o /dev/stdout -O /etc/EHEH/eheh-agent.sh –no-check-certificate https://eheh.org/shell/eheh-agent.sh)” #github link echo -e “|   下载脚本到 /etc/EHEH\n|\n|   + $(wget -nv -o /dev/stdout -O /etc/EHEH/eheh-agent.sh –no-check-certificate https://raw.github.com/eheh-org/agent/master/eheh-agent.sh)” if [ -f /etc/EHEH/eheh-agent.sh ] then         # Create auth file         echo “$1” > /etc/EHEH/eheh-auth.log         # Create user         useradd EHEH -r -d /etc/EHEH -s /bin/false         # Modify user permissions         chown -R EHEH:EHEH /etc/EHEH && chmod -R 700 /etc/EHEH         # Modify ping permissions         chmod +s `type -p ping`         # Configure cron         crontab -u EHEH -l 2>/dev/null | { cat; echo “*/3 * * * * bash /etc/EHEH/eheh-agent.sh > /etc/EHEH/eheh-cron.log 2>&1”; } | crontab -u EHEH –         # Show success         echo -e “|\n|   小提示:如果你的服务器安装有宝塔,crontab可能被停用了,请参考:https://eheh.org/article/10 进行设置下”         echo -e “|\n|   小提示:如果你的服务使用了Cpanel,ping可能缺少权限,请参考https://eheh.org/article/6 进行设置下”         echo -e “|\n|”         printf  “$(_blue “|   安装完成,开始设置”) \n\n”   echo “|” && read -p “|   你想监控mysql状态吗,如果要请输入Y,我们将帮你设置  [Y/n] ” input_mysql   if [ -z $input_mysql ] || [ $input_mysql == “Y” ] || [ $input_mysql == “y” ]   then         echo “|” && read -p “|  请输入mysql用户名  ” input_mu         $(echo “$input_mu” > /etc/EHEH/mysql-user)         echo “|” && read -p “|  请输入mysql密码  ” input_mp         $(echo “$input_mp” > /etc/EHEH/mysql-pass)         echo -e “|\n|   Done,完成设置”   fi if [ -n “$(command -v apt-get)” ] then     printf  “$(_yellow “|   Debian/ubuntu的默认shell已经切换成了dash。如需马上推送一次数据,请手动执行以下2条命令”)\n\n”     printf  “$(_blue “|   /etc/EHEH/eheh-agent.sh “) \n\n”     printf  “$(_blue “|   chown -Rf EHEH.EHEH /etc/EHEH/”) \n\n” else       #push data at once ?       echo “|” && read -p “|   需要马上推送数据吗?或等5/6分钟  [Y/n] ” push       if [ $push == “Y” ] || [ $push == “y” ]       then         sh /etc/EHEH/eheh-agent.sh         chown -Rf EHEH.EHEH /etc/EHEH/       fi fi   echo -e “|\n| 完成安装!EHEH.ORG 上见\n|”         # Attempt to delete installation script         if [ -f $0 ]         then                 rm -f $0         fi else         # Show error         echo -e “|\n|  错误,无法安装\n|” fi 复制代码
shell地址:https://raw.githubusercontent.com/eheh-org/agent/master/install.sh

赞(0) 打赏
关注我们
未经允许不得转载:flyzy博客 » 这个shell怎么改成无人值守安装呀
分享到: 更多 (0)

这是一种鼓励

支付宝扫一扫打赏

微信扫一扫打赏