├── Netanybak ├── README.md ├── VSftpd.sh ├── back.sh ├── back_conf └── backup.sh ├── README.md ├── backup_mongo.sh ├── backup_mysql.sh ├── check_ping.sh ├── clean_oracle.sh ├── cpulimit.sh ├── custom_rm.sh ├── install_cacti.sh ├── install_elk.sh ├── install_memcached.sh ├── install_mongodb.sh ├── install_python.sh ├── install_smokeping.sh ├── install_zabbix.sh ├── linux_fanyi.sh ├── mem_free.sh ├── monitor_postgre.sh ├── scan_file.sh └── sys_check.sh /Netanybak/README.md: -------------------------------------------------------------------------------- 1 | # Netanybak 2 | ## RS and firewall config file backup 3 | 4 | > 路由器/交换机/防火墙等网络设备配置文件备份脚本 5 | 详细操作步骤请参考blog 6 | 7 | blog:[防火墙备份](http://blog.51cto.com/kaliarch/1953118) 8 | -------------------------------------------------------------------------------- /Netanybak/VSftpd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | vsftpd=/etc/vsftpd/vsftpd.conf 3 | ftppasswd=`cat /dev/urandom | head -n 10 | md5sum | head -c 10` 4 | yum install -y vsftpd &> /tmp/vsftp_install 5 | mv $vsftpd $vsftpd.bak 6 | cat > $vsftpd < /root/ftppasswd.txt 43 | chown -R ftpadmin /FTP 44 | chmod 755 /FTP 45 | exit 0 46 | -------------------------------------------------------------------------------- /Netanybak/back.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect -f 2 | set ip [ lindex $argv 0 ] 3 | set user [ lindex $argv 1 ] 4 | set password [ lindex $argv 2 ] 5 | set port [ lindex $argv 3 ] 6 | set host [ lindex $argv 4 ] 7 | set ftpip [ lindex $argv 5 ] 8 | set ftpuser [ lindex $argv 6 ] 9 | set ftppwd [ lindex $argv 7 ] 10 | spawn ssh -p $port $user@$ip 11 | expect { 12 | "(yes/no)?" 13 | { 14 | send "yes\r" 15 | expect "password:" 16 | send "$password\r" 17 | } 18 | "password:" 19 | { 20 | send "$password\r" 21 | } 22 | } 23 | expect "*#" 24 | send "export configuration startup to ftp server $ftpip user $ftpuser password $ftppwd $host\r" 25 | expect "Export ok" 26 | send "exit\r" 27 | expect eof 28 | -------------------------------------------------------------------------------- /Netanybak/back_conf: -------------------------------------------------------------------------------- 1 | XA 西安 172.17.1.10 hillstone hillstone 22 lih 2 | -------------------------------------------------------------------------------- /Netanybak/backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | read -p "Please input ftp server ipaddress:" FTPIP 3 | read -p "Please input ftp username:" FTPUSER 4 | read -p "Please input ftp password:" FTPPWD 5 | read -p "Please input Receive mailbox:" MAIL 6 | config_file=/scripts/back_conf 7 | backup_dir=/FTP 8 | DATE=$(date +%Y%m%d) 9 | if [ ! -d $backup_dir ];then 10 | /bin/mkdir $backup_dir 11 | fi 12 | cat $config_file | while read ADDRESS NAME IP USER PASSWD PORT FILENAME;do 13 | if [ ! -d $backup_dir/$ADDRESS/$NAME ];then 14 | /bin/mkdir -p $backup_dir/$ADDRESS/$NAME 15 | fi 16 | ./back.sh $IP $USER $PASSWD $PORT $FILENAME $FTPIP $FTPUSER $FTPPWD &>/dev/null 17 | if [ $? -eq 0 ];then 18 | /bin/mv $backup_dir/$FILENAME $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE 19 | /bin/echo "BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE" | /bin/mail -r "service02@51idc.com" -s "$NAME 防火墙备份_成功!" $MAIL 20 | else 21 | /bin/echo "BACKUP $IP SUCCESS,BACKUP_FILE $backup_dir/$ADDRESS/$NAME/$FILENAME"_"$DATE" | /bin/mail -r "service02@51idc.com" -s "$NAME 防火墙备份_失败!" $MAIL 22 | fi 23 | done 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # scripts 2 | ## Zabbix 3 | > zabbix 3.0/3.2/3/4三个版本安装 4 | 5 | blog:[自动化安装zabbix脚本](http://blog.51cto.com/kaliarch/1961525) 6 | 7 | ## Cacti 8 | > cacti 1.0.1/2/3三个版本安装 9 | 10 | blog:[自动化安装Cacti脚本 ](http://blog.51cto.com/kaliarch/1898212) 11 | 12 | ## ELK 13 | > elk 安装(elasticsearch-5.4.1/logstash-5.4.1/filebeat-5.4.1/kibana-5.4.1 ) 14 | 15 | blog:[ELK自动安装脚本](http://blog.51cto.com/kaliarch/1964265) 16 | 17 | ## Smokeping 18 | > smokeping-2.6.11 版本安装 19 | 20 | blog:[Smokeping自动安装脚本](http://blog.51cto.com/kaliarch/1899007) 21 | 22 | ## MongoDB备份 23 | > mongodb备份 24 | 25 | blog:[MongoDB备份](http://blog.51cto.com/kaliarch/2044423) 26 | 27 | ## Postgresql主从状态监控 28 | > Postgresql主从状态监控 29 | 30 | blog:[Postgresql主从](http://blog.51cto.com/kaliarch/1909936) 31 | 32 | ## Oracle rman清理 33 | > Oracle rman磁盘清理 34 | 35 | blog:[Oracle自动清理日志脚本](http://blog.51cto.com/kaliarch/1983430) 36 | 37 | ## Memcached 安装脚本 38 | > Memcached 安装脚本 39 | 40 | blog:[Memcached 安装脚本](http://blog.51cto.com/kaliarch/2083810) 41 | 42 | ## Mongodb 安装脚本 43 | > Mongodb 安装脚本 44 | 45 | blog:[Mongodb 安装脚本](http://blog.51cto.com/kaliarch/2128814) 46 | ## Netanybak网络设备备份 47 | > 网络设备备份 48 | 49 | blog:[Hillstone 防火墙备份脚本](http://blog.51cto.com/kaliarch/1953118) 50 | 51 | ## Linux系统快速安装不通版本Python 52 | > 快捷安装不同版本Python 53 | 54 | blog:[快速安装不同版本Python](http://blog.51cto.com/kaliarch/2135518) 55 | 56 | 57 | ## Linux自定义防误删脚本 58 | > Linux自定义防误删脚本 59 | 60 | blog:[Linux自定义防误删脚本](http://blog.51cto.com/kaliarch/2300148) 61 | 62 | ## Shell脚本对Linux进行文件校验 63 | > Shell脚本对Linux进行文件校验 64 | 65 | blog:[Shell脚本对Linux进行文件校验](http://blog.51cto.com/kaliarch/2300207) 66 | 67 | ## Linux命令行翻译工具 68 | > Linux命令行翻译工具 69 | 70 | blog:[Linux命令行翻译工具](http://blog.51cto.com/kaliarch/2301105) 71 | 72 | ## Linux系统检测脚本 73 | > Linux系统检测脚本 74 | 75 | blog:[Linux系统检测脚本](http://blog.51cto.com/kaliarch/2308233) 76 | 77 | ## Linux系统进程CPU使用率限制脚本 78 | > Linux系统进程CPU使用率限制脚本 79 | 80 | blog:[Linux系统进程CPU使用率限制脚本](http://blog.51cto.com/kaliarch/2318020) 81 | 82 | -------------------------------------------------------------------------------- /backup_mongo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #auth:xuel@anchnet.com 3 | #backup mongodb 4 | 5 | . /etc/profile 6 | CMD=`which mongodump` 7 | DATE=`date +%F` 8 | DB="test" 9 | DB_HOST="localhost" 10 | DB_PORT="27017" 11 | DB_USER="testuser" 12 | DB_PWD="testpass" 13 | BACKUP_DIR="/data/mongodb/" 14 | TAR_DIR="/data/tardir/" 15 | TAR_DIR_DATE="${TAR_DIR}${DATE}" 16 | TAR_BAK="mongodb_bak_$DATE.tar.gz" 17 | 18 | check_dir(){ 19 | for DIR in ${BACKUP_DIR} ${TAR_DIR_DATE} 20 | do 21 | if [ ! -d $DIR ];then 22 | mkdir -p $DIR 23 | fi 24 | done 25 | } 26 | backup_mongodb(){ 27 | $CMD -h ${DB_HOST}:${DB_PORT} -u $DB_USER -p $DB_PWD -d ${DB} -o ${BACKUP_DIR}${DATE} >/dev/null 28 | if [ $? -eq 0 ];then 29 | tar -zcf ${TAR_DIR_DATE}/${TAR_BAK} ${BACKUP_DIR}${DATE} && return 0 30 | fi 31 | } 32 | clean_tar() { 33 | find ${TAR_DIR} -mtime +7 -exec rm -rf {} \; && return 0 34 | } 35 | 36 | main() { 37 | check_dir 38 | [ $? -eq 0 ] && backup_mongodb 39 | [ $? -eq 0 ] && clean_tar 40 | } 41 | 42 | main 43 | -------------------------------------------------------------------------------- /backup_mysql.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | #author:xuel 4 | #mail:xuel@51idc.com 5 | #data:2016/6/11 6 | 7 | DIR=/data/mysqldump/`date +%Y-%m-%d` 8 | MYSQLDB=cacti 9 | MYSQLUSR=root 10 | MYSQLPW=mysqladmin 11 | MYSQLCMD=/usr/bin/mysqldump 12 | if [ $UID -ne 0 ];then 13 | echo "Must to be use root for exec shell." 14 | exit 15 | fi 16 | 17 | if [ ! -d $DIR ];then 18 | mkdir -p $DIR 19 | echo "\033[32mThe $DIR create successfully!" 20 | else 21 | echo "This $DIR is exists..." 22 | fi 23 | 24 | #mysqldump 25 | $MYSQLCMD -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >$DIR/$MYSQLDB.sql 26 | if [ $? -eq 0 ];then 27 | echo -e "\033[32mThe mysql backup $MYSQLDB successfully!\033[0m" 28 | else 29 | echo -e "\033[32The mysql backup $MYSQLDB failed.Please check!\033[0m" 30 | fi 31 | -------------------------------------------------------------------------------- /check_ping.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #auth:kaliarch 3 | 4 | # ping可执行路径 5 | PINGCMD=/usr/bin/ping 6 | # zabbix_sender可执行文件路径 7 | SENDCMD=/usr/bin/zabbix_sender 8 | # ping测主机ip地址 9 | CHECKHOST=baidu.com11 10 | # zabbix服务器ip地址 11 | ZABBIXSERVER=43.254.55.225 12 | # zabbix服务器监听端口 13 | ZABBIXPORT=10051 14 | # zabbix添加这条监控主机名 15 | LOCALHOST=checkping_monitor 16 | # ping包的数量 17 | PAG_NUM=1 18 | # 添加监控项的键值 19 | ZAX_KEY=ping_response 20 | 21 | 22 | # 获取ping响应时间 23 | check_ping() { 24 | $PINGCMD -c $PAG_NUM $CHECKHOST >/dev/null 2>&1 25 | if [ $? -eq 0 ];then 26 | RESPONSE_TIME=`$PINGCMD -c $PAG_NUM -w 1 $CHECKHOST |head -2 |tail -1|awk '{print $(NF-1)}'|cut -d= -f2` 27 | echo $RESPONSE_TIME 28 | else 29 | echo 0 30 | fi 31 | } 32 | 33 | # 发送数据到zabbixserver 34 | send_data() { 35 | DATA=`check_ping` 36 | $SENDCMD -z $ZABBIXSERVER -s $LOCALHOST -k $ZAX_KEY -o $DATA 37 | } 38 | 39 | while true 40 | do 41 | send_data 42 | sleep 0.5 43 | done 44 | -------------------------------------------------------------------------------- /clean_oracle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | oracle_env() { 3 | source /home/oracle/.bash_profile 4 | export ORACLE_BASE=/home/oracle/app 5 | export ORACLE_HOME=$ORACLE_BASE/oracle/product/12.1.0/dbhome_1 6 | export ORACLE_SID=orcl 7 | export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 8 | oraclecmd="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/sqlplus" 9 | oraclerman="/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/rman" 10 | } 11 | disk_useper=`/bin/df -Th|grep -v 'Filesystem'|awk '/\/dev\/mapper\/vg00-lv_root/{if ("$(NF)"=="/");print $(NF-1)}'|cut -d% -f1` 12 | 13 | oracle_clean() { 14 | oracle_env 15 | ${oraclerman} target /< CPU) print $2}') 20 | CPULIMITCMD=$(which cpulimit) 21 | 22 | install_cpulimit() { 23 | [ ! -d /tmp ] && mkdir /tmp || cd /tmp 24 | wget -c https://github.com/opsengine/cpulimit/archive/v0.2.tar.gz 25 | tar -zxf v0.2.tar.gz 26 | cd cpulimit-0.2 && make 27 | [ $? -eq 0 ] && cp src/cpulimit /usr/bin/ 28 | } 29 | 30 | 31 | do_cpulimit() { 32 | [ ! -d ${LOG_DIR} ] && mkdir -p ${LOG_DIR} 33 | for i in ${PIDARG}; 34 | do 35 | MSG=$(ps -aux |awk -v pid=$i '{if($2 == pid) print $0}') 36 | echo ${MSG} 37 | [ ! -d /tmp ] && mkdir /tmp || cd /tmp 38 | nohup ${CPULIMITCMD} -p $i -l ${LIMIT_CPU} & 39 | echo "$(date) -- ${MSG}" >> ${LOG_DIR}$(date +%F).log 40 | done 41 | } 42 | 43 | main() { 44 | 45 | hash cpulimit 46 | if [ $? -eq 0 ];then 47 | do_cpulimit 48 | else 49 | install_cpulimit && do_cpulimit 50 | fi 51 | } 52 | 53 | main 54 | -------------------------------------------------------------------------------- /custom_rm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # function:自定义rm命令,每天晚上定时清理 3 | 4 | CMD_SCRIPTS=$HOME/.rm_scripts.sh 5 | TRASH_DIR=$HOME/.TRASH_DIR 6 | CRON_FILE=/var/spool/cron/root 7 | BASHRC=$HOME/.bashrc 8 | 9 | [ ! -d ${TRASH_DIR} ] && mkdir -p ${TRASH_DIR} 10 | cat > $CMD_SCRIPTS <> $CRON_FILE 25 | echo "删除目录:$TRASH_DIR" 26 | echo "删除脚本:$CMD_SCRIPTS" 27 | echo "请执行:source $BASHRC 来加载文件或退出当前shell重新登录" 28 | 29 | 30 | -------------------------------------------------------------------------------- /install_cacti.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #Date 2017/2/14 3 | #mail xuel@51idc.com 4 | [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 5 | export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 6 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 7 | setenforce 0 8 | which ntpdate 9 | yum install wget -y 10 | if [ $? -eq 0 ];then 11 | /usr/sbin/ntpdate time1.aliyun.com 12 | echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root 13 | else 14 | yum install ntpdate -y 15 | /usr/sbin/ntpdate time1.aliyun.com 16 | echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root 17 | fi 18 | clear 19 | echo "##########################################" 20 | echo "# Auto Install Cacti. ##" 21 | echo "# Press Ctrl + C to cancel ##" 22 | echo "# Any key to continue ##" 23 | echo "##########################################" 24 | echo "(1) Install Cacti-1.0.1" 25 | echo "(2) Install Cacti-1.0.2" 26 | echo "(3) Install Cacti-1.0.3" 27 | echo "(4) EXIT" 28 | read -p "Please input your choice:" NUM 29 | case $NUM in 30 | 1) 31 | URL="http://www.cacti.net/downloads/cacti-1.0.1.tar.gz" 32 | VER=cacti-1.0.1 33 | ;; 34 | 2) 35 | URL="http://www.cacti.net/downloads/cacti-1.0.2.tar.gz" 36 | VER=cacti-1.0.2 37 | ;; 38 | 3) 39 | URL="http://www.cacti.net/downloads/cacti-1.0.3.tar.gz" 40 | VER=cacti-1.0.3 41 | ;; 42 | 4) 43 | echo -e "\033[41;37m You choice channel! \033[0m" && exit 0 44 | ;; 45 | *) 46 | echo -e "\033[41;37m Input Error! Place input{1|2|3} \033[0m" && exit 1 47 | ;; 48 | esac 49 | clear 50 | echo -e "\033[32m You choice install $VER.Install\033[0m" 51 | echo -e "\033[5m Press any key to start install $VER... \033[0m" 52 | read -n 1 53 | ################################################################ 54 | TDIR=/tools 55 | IP=`ifconfig eth0 | grep "inet addr" | awk -F"[: ]+" '{print $4}'` 56 | yum remove php* -y 57 | rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm 58 | ls /etc/yum.repos.d/webtatic.repo 59 | if [ $? -eq 0 ];then 60 | yum -y install `yum list|grep php55w|awk '{printf ("%s ",$1)}'` --skip-broken 61 | fi 62 | PHPCONF="/etc/php.ini" 63 | if [ -f $PHPCONF ];then 64 | echo "date.timezone = Asia/Shanghai" >>$PHPCONF 65 | fi 66 | service php-fpm start /tmp/php-install.log 2>&1 67 | STAT=`echo $?` 68 | PORT=`netstat -lntup|grep php-fpm|wc -l` 69 | if [ $STAT -eq 0 ] && [ $PORT -eq 1 ];then 70 | echo -e "\033[32m PHP is install success! \033[0m" 71 | else 72 | echo -e "\033[32m PHP install file.please check /tmp/php-install.log \033[0m" 73 | fi 74 | ############################################################ 75 | yum install httpd net-snmp net-snmp-devel net-snmp-utils rrdtool -y 76 | RRDTVER=`yum list|grep ^rrdtool.x86_64|awk -F" " '{print $2}'` 77 | WEBVER=`yum list|grep ^httpd.x86_64|awk -F" " '{print $2}'|cut -d- -f1` 78 | if [ -d /var/www/html ];then 79 | cd /var/www/html 80 | else 81 | mkdir -p /var/www/html && cd /var/www/html 82 | fi 83 | wget -c -O /var/www/html/$VER.tar.gz http://www.cacti.net/downloads/$VER.tar.gz 84 | tar -zxvf $VER.tar.gz 85 | mv $VER cacti 86 | cd cacti 87 | chown -R apache.root * 88 | useradd cacti 89 | echo "cacti" | passwd --stdin cacti 90 | echo "*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php >/dev/null 2>&1">>/var/spool/cron/root 91 | service httpd start 92 | chkconfig httpd on 93 | ################################################################### 94 | SNMPFILE=/etc/snmp/snmpd.conf 95 | if [ -f "$SNMPFILE" ] 96 | then 97 | cp $SNMPFILE /etc/snmp/snmpd.conf.bak 98 | fi 99 | cat > $SNMPFILE << EOF 100 | com2sec notConfigUser default public 101 | group notConfigGroup v1 notConfigUser 102 | group notConfigGroup v2c notConfigUser 103 | view systemview included .1 104 | view systemview included .1.3.6.1.2.1.1 105 | view systemview included .1.3.6.1.2.1.25.1.1 106 | access notConfigGroup "" any noauth exact all none none 107 | view all included .1 80 108 | syslocation Unknown (edit /etc/snmp/snmpd.conf) 109 | syscontact Root (configure /etc/snmp/snmp.local.conf) 110 | dontLogTCPWrappersConnects yes 111 | proc mountd 112 | proc ntalkd 4 113 | net-snmp-utils rrdtoolproc senmail 10 1 114 | exec echotest /bin/echo hello world 115 | disk / 10000 116 | EOF 117 | service snmpd start 118 | chkconfig snmpd on 119 | ############################################################### 120 | SQLNEW="WWW.51idc.com" 121 | yum install mysql-server mysql -y 122 | service mysqld start 123 | mysqladmin -uroot password "$SQLNEW" 124 | mysql -uroot "-p$SQLNEW" -e "create database cacti character set utf8;" 125 | mysql -uroot "-p$SQLNEW" cacti>/etc/my.cnf<$PHPCONF< 153 | EOF 154 | fi 155 | clear 156 | service mysqld restart 157 | ############################################################# 158 | /etc/init.d/iptables status >/dev/null 2>&1 159 | if [ $? -eq 0 ];then 160 | iptables -I INPUT -p tcp --dport 80 -j ACCEPT && 161 | #iptables -I INPUT -p tcp --dport 3306 -j ACCEPT && 162 | service iptables save >/dev/null 2>&1 163 | /etc/init.d/iptables restart 164 | else 165 | echo -e "\033[32m iptables is stopd\033[0m" 166 | fi 167 | clear 168 | echo -e "\033[42;37m Mysql:5.7 rrdtool:$RRDTVER PHP:5.5 apche:$WEBVER\033[0m" 169 | echo -e "\033[42;37m MySql Username:root Password:$SQLNEW \033[0m" 170 | echo -e "\033[42;37m URL:http://$IP/cacti \033[0m" 171 | echo -e "\033[42;37m $VER is Install Success,Username:Admin Password:admin \033[0m" 172 | -------------------------------------------------------------------------------- /install_elk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #mail:xuel@anchnet.com 3 | #data:2017/9/7 4 | #AutoInstall ELK scripts 5 | #Software:elasticsearch-5.4.1/logstash-5.4.1/filebeat-5.4.1/kibana-5.4.1 6 | clear 7 | echo "##########################################" 8 | echo "# Auto Install ELK. ##" 9 | echo "# Press Ctrl + C to cancel ##" 10 | echo "# Any key to continue ##" 11 | echo "##########################################" 12 | read -p 13 | software_dir="/usr/local/software" 14 | elasticsearch_url="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz" 15 | kibana_url="https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-linux-x86_64.tar.gz" 16 | logstash_url="https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.tar.gz" 17 | filebeat_url="https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-linux-x86_64.tar.gz" 18 | sys_version=`cat /etc/redhat-release |awk '{print $4}'|cut -d. -f1` 19 | IP=`ip addr|grep "inet "|grep -v 127.0.0.1|awk '{print $2}'|cut -d/ -f1` 20 | jvm_conf="/usr/local/elasticsearch/config/jvm.options" 21 | sys_mem=`free -m|grep Mem:|awk '{print $2}'|awk '{sum+=$1} END {print sum/1024}'|cut -d. -f1` 22 | 23 | #wget software 24 | wget_fun() { 25 | if [ ! -d ${software_dir} ];then 26 | mkdir -p ${software_dir} && cd ${software_dir} 27 | else 28 | cd ${software_dir} 29 | fi 30 | for software in $elasticsearch_url $kibana_url $logstash_url $filebeat_url 31 | do 32 | wget -c $software 33 | done 34 | clear 35 | } 36 | #initial system:install java wget;set hostname;disable firewalld 37 | init_sys() { 38 | [ -f /etc/init.d/functions ] && . /etc/init.d/functions 39 | [ "${sys_version}" != "7" ] && echo "Error:This Scripts Support Centos7.xx" && exit 1 40 | [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 41 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 42 | setenforce 0 43 | yum install -y java-1.8.0-openjdk wget net-tools 44 | hostnamectl set-hostname elk-server 45 | systemctl stop firewalld 46 | cat >>/etc/security/limits.conf<>/etc/sysctl.conf && sysctl -p 63 | if [ ${sys_mem} -eq 0 ];then 64 | sed -i "s#`grep "^-Xmx" ${jvm_conf}`#"-Xmx512m"#g" ${jvm_conf} 65 | sed -i "s#`grep "^-Xms" ${jvm_conf}`#"-Xms512m"#g" ${jvm_conf} 66 | else 67 | sed -i "s#`grep "^-Xmx" ${jvm_conf}`#"-Xmx${sys_mem}g"#g" ${jvm_conf} 68 | sed -i "s#`grep "^-Xms" ${jvm_conf}`#"-Xms${sys_mem}g"#g" ${jvm_conf} 69 | fi 70 | cat >>/usr/local/elasticsearch/config/elasticsearch.yml</usr/local/logstash/config/01-syslog.conf< "5044" 91 | } 92 | } 93 | output { 94 | elasticsearch { 95 | hosts => "127.0.0.1:9200" 96 | } 97 | stdout { codec => rubydebug } 98 | } 99 | EOF 100 | nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/01-syslog.conf & >/dev/null 101 | } 102 | 103 | #install filebeat 104 | install_filebeat() { 105 | cd $software_dir 106 | tar -zxf filebeat-5.4.1-linux-x86_64.tar.gz 107 | mv filebeat-5.4.1-linux-x86_64 /usr/local/filebeat 108 | cat >/usr/local/filebeat/filebeat.yml</dev/null 118 | } 119 | 120 | #install kibana 121 | install_kibana() { 122 | cd $software_dir 123 | tar -zxf kibana-5.4.1-linux-x86_64.tar.gz 124 | mv kibana-5.4.1-linux-x86_64 /usr/local/kibana 125 | cat >> /usr/local/kibana/config/kibana.yml </dev/null 131 | } 132 | 133 | check() { 134 | port=$1 135 | program=$2 136 | check_port=`netstat -lntup|grep ${port}|wc -l` 137 | check_program=`ps -ef|grep ${program}|grep -v grep|wc -l` 138 | if [ $check_port -gt 0 ] && [ $check_program -gt 0 ];then 139 | action "${program} run is ok!" /bin/true 140 | else 141 | action "${program} run is error!" /bin/false 142 | fi 143 | } 144 | 145 | main() { 146 | init_sys 147 | wget_fun 148 | install_elasticsearch 149 | install_filebeat 150 | install_logstash 151 | install_kibana 152 | echo -e "\033[32m Checking Elasticsearch...\033[0m" 153 | sleep 20 154 | check :9200 "elasticsearch" 155 | echo -e "\033[32m Checking Logstash...\033[0m" 156 | sleep 2 157 | check ":9600" "logstash" 158 | echo -e "\033[32m Checking Kibana...\033[0m" 159 | sleep 2 160 | check ":5601" "kibana" 161 | action "ELK install is success!" /bin/true 162 | echo "url:http://$IP:5601" 163 | } 164 | main 165 | -------------------------------------------------------------------------------- /install_memcached.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #mail:xuel@anchnet.com 3 | #function:auto install memcached 4 | clear 5 | echo "##########################################" 6 | echo "# Auto Install Memcached-1.4 ##" 7 | echo "# Press Ctrl + C to cancel ##" 8 | echo "# Any key to continue ##" 9 | echo "##########################################" 10 | read -n 1 11 | softdir="/software" 12 | memcached_url="http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz" 13 | libevent_url="https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz" 14 | sys_version=$(rpm -q centos-release|cut -d- -f3) 15 | 16 | sys_init() { 17 | [ -f /etc/init.d/functions ] && . /etc/init.d/functions 18 | [ ${sys_version} != "6" ] && echo "Please use centos6.x" && exit 1 19 | [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 20 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 21 | setenforce 0 22 | yum install -y gcc gcc-c++ wget 23 | } 24 | 25 | download_software() { 26 | if [ ! -d ${softdir} ];then 27 | mkdir ${softdir} && cd ${softdir} 28 | else 29 | cd ${softdir} 30 | fi 31 | for software_url in ${memcached_url} ${libevent_url} 32 | do 33 | wget -c ${software_url} 34 | if [ $? -eq 0 ];then 35 | for software in `ls` 36 | do 37 | tar zxf $software -C /tmp 38 | done 39 | fi 40 | done 41 | } 42 | 43 | install() { 44 | cd /tmp/libevent-2.1.8-stable 45 | ./configure --prefix=/usr/local/libevent 46 | make && make install 47 | rm -rf /tmp/libevent-2.1.8-stable 48 | echo "/usr/local/libevent/lib">/etc/ld.so.conf.d/libevent.conf 49 | ldconfig 50 | 51 | cd /tmp/memcached-1.4.0 52 | ./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached 53 | make && make install 54 | rm -rf /tmp/memcached-1.4.0 55 | echo "export PATH=$PATH:/usr/local/memcached/bin">/etc/profile.d/memcached.sh && source /etc/profile.d/memcached.sh 56 | } 57 | 58 | start_server() { 59 | cat >/etc/init.d/memcached-server<>${logfile} 2>&1 64 | fi 65 | 66 | sys_init() { 67 | clear 68 | echo -e "\033[42;5m initialization system... \033[0m" 69 | sleep 2 70 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 71 | if [ ${sys_version} == "6" ];then 72 | /etc/init.d/iptables status >/dev/null 73 | [ $? -eq 0 ] && iptables -I INPUT -p tcp --dport 27017 -j ACCEPT 74 | [ $? -eq 0 ] && /etc/init.d/iptables save >${logfile} 2>&1 75 | elif [ ${sys_version} == "7" ];then 76 | systemctl stop firewalld && systemctl disable firewalld 77 | else 78 | echo "system must user centos6/7.x." >>${logfile} 2>&1 79 | fi 80 | yum -y install wget >/dev/null 81 | setenforce 0 82 | echo "sys_init complate!">> ${logfile} 83 | } 84 | 85 | 86 | download_software() { 87 | clear 88 | echo -e "\033[42;5m download software... \033[0m" 89 | sleep 2 90 | if [ ! -d ${softdir} ];then 91 | mkdir ${softdir} && cd ${softdir} 92 | else 93 | cd ${softdir} 94 | fi 95 | for software_url in ${mongodb_url} 96 | do 97 | wget -c ${software_url} --tries=5 98 | if [ $? -eq 0 ];then 99 | for software in `ls` 100 | do 101 | tar zxf $software -C $installdir 102 | done 103 | else 104 | echo "download software error!" >> ${logfile} 2>&1 && exit 1 105 | fi 106 | done 107 | echo "download_software" >>${logfile} 108 | } 109 | 110 | install_software() { 111 | clear 112 | echo -e "\033[42;5m install server... \033[0m" 113 | sleep 2 114 | mongodbdir=$(ls ${installdir}|grep "mongodb-linux-x86_64") 115 | ln -s ${installdir}/${mongodbdir} ${installdir}/mongodb 116 | mkdir ${installdir}/mongodb/{conf,mongoData,mongoLog} 117 | touch ${installdir}/mongodb/mongoLog/mongodb.log 118 | echo "export PATH=\$PATH:${installdir}/mongodb/bin">/etc/profile.d/mongodb.sh 119 | source /etc/profile.d/mongodb.sh 120 | cat >${installdir}/mongodb/conf/mongodb.conf <>${logfile} 135 | } 136 | 137 | start_server() { 138 | clear 139 | echo -e "\033[42;5m configuration server... \033[0m" 140 | if [ ${sys_version} == "6" ];then 141 | cat >/etc/init.d/mongodb-server</dev/null 162 | 163 | RETVAL=$? 164 | [ \$RETVAL = 0 ] && touch \${lockfile} 165 | return \$RETVAL 166 | } 167 | 168 | stop() { 169 | if test "x\${getpid}" != x; then 170 | action $"Stopping \$prog " /bin/true 171 | killall mongod 172 | fi 173 | RETVAL=\$? 174 | [ \$RETVAL = 0 ] && rm -rf \${lockfile} \${pidfile} 175 | return \$RETVAL 176 | } 177 | 178 | case "\$1" in 179 | start) 180 | start 181 | ;; 182 | 183 | stop) 184 | stop 185 | ;; 186 | 187 | status) 188 | status -p \${pidfile} \${mongod} 189 | RETVAL=\$? 190 | ;; 191 | 192 | restart) 193 | stop 194 | start 195 | ;; 196 | 197 | *) 198 | echo $"Usage: \$0 {start|status|stop|restart}" 199 | exit 1 200 | 201 | esac 202 | 203 | exit \${RETVAL} 204 | EOF 205 | cd / 206 | chmod +x /etc/init.d/mongodb-server 207 | chkconfig mongodb-server on 208 | service mongodb-server start 209 | elif [ ${sys_version} == "7" ];then 210 | cat >/usr/lib/systemd/system/mongod.service<>${logfile} 2>&1 225 | else 226 | echo "install occer error,please see ${logfile}" && exit 1 227 | fi 228 | } 229 | 230 | 231 | check_server() { 232 | clear 233 | echo -e "\033[42;5m check server status... \033[0m" 234 | server_port=$(netstat -lntup|grep mongod|wc -l) 235 | server_proc=$(ps -ef |grep mongodb.conf|grep -v grep|wc -l) 236 | if [ ${server_port} -gt 0 -a ${server_port} -gt 0 ];then 237 | echo -e "\033[42;37m mongodb-server install successful! \033[0m" 238 | echo -e "\033[42;37m version:${software_version} \033[0m" 239 | echo -e "\033[42;37m bashpath:${installdir}/mongodb \033[0m" 240 | else 241 | echo "install occer error,please see ${logfile}" && exit 1 242 | fi 243 | } 244 | 245 | main() { 246 | sys_init 247 | download_software 248 | install_software 249 | start_server 250 | check_server 251 | } 252 | 253 | main 254 | -------------------------------------------------------------------------------- /install_python.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #mail:xuel@anchnet.com 3 | #function:auto install python 4 | sys_init() { 5 | [ -f /etc/init.d/functions ] && . /etc/init.d/functions 6 | [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 7 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 8 | setenforce 0 9 | clear 10 | echo "##########################################" 11 | echo "# Auto Install Python ##" 12 | echo "# Press Ctrl + C to cancel ##" 13 | echo "# Any key to continue ##" 14 | echo "##########################################" 15 | echo "(1) Install Python2.7" 16 | echo "(2) Install zabbix3.6" 17 | echo "(3) Install zabbix3.7" 18 | echo "(4) EXIT" 19 | read -p "Please input your choice:" NUM 20 | case $NUM in 21 | 1) 22 | URL="https://www.python.org/ftp/python/2.7/Python-2.7.tgz" 23 | VER=python27 24 | ;; 25 | 2) 26 | URL="https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz" 27 | VER=python36 28 | ;; 29 | 3) 30 | URL="https://www.python.org/ftp/python/3.7.0/Python-3.7.0b4.tgz" 31 | VER=python37 32 | ;; 33 | 4) 34 | echo -e "\033[41;37m You choice channel! \033[0m" && exit 0 35 | ;; 36 | *) 37 | echo -e "\033[41;37m Input Error! Place input{1|2|3|4} \033[0m" && exit 1 38 | ;; 39 | esac 40 | clear 41 | echo -e "\033[41;37m You choice $VER \033[0m" 42 | } 43 | 44 | download_software() { 45 | softdir="/software" 46 | if [ ! -d ${softdir} ];then 47 | mkdir ${softdir} && cd ${softdir} 48 | else 49 | cd ${softdir} 50 | fi 51 | wget -c ${URL} -O python.tgz 52 | wget -c https://bootstrap.pypa.io/get-pip.py 53 | if [ $? -eq 0 ];then 54 | tar zxf python.tgz -C /tmp 55 | fi 56 | } 57 | 58 | install() { 59 | yum install -y zlib-devel zlib readline-devel openssl-devel wget gcc-c++ libffi-devel 60 | if [ ${VER} == "python27" ];then 61 | dirname="Python-2.7.0" 62 | elif [ ${VER} == "python36" ];then 63 | dirname="Python-3.6.0" 64 | else 65 | dirname="Python-3.7.0b4" 66 | fi 67 | 68 | cd /tmp/${dirname} 69 | ./configure --prefix=/usr/local/${VER} 70 | make && make install 71 | echo "export PATH=$PATH:/usr/local/${VER}/bin">/etc/profile.d/${VER}.sh 72 | source /etc/profile.d/${VER}.sh 73 | #/usr/local/${VER}/bin/python /tmp/get-pip.py 74 | rm -rf /tmp/${VER} 75 | echo "/usr/local/${VER}/lib">/etc/ld.so.conf.d/${VER}.conf 76 | ldconfig 77 | } 78 | 79 | main() { 80 | sys_init 81 | download_software 82 | install 83 | } 84 | 85 | main 86 | -------------------------------------------------------------------------------- /install_smokeping.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ############# 3 | #Date 2016/11/11 4 | #mail xuel@51idc.com 5 | ############# 6 | echo "##########################################" 7 | echo "Auto Install smokeping-2.6.11 ##" 8 | echo "Press Ctrl + C to cancel ##" 9 | echo "Any key to continue ##" 10 | echo "##########################################" 11 | read -n 1 12 | /etc/init.d/iptables status >/dev/null 2>&1 13 | if [ $? -eq 0 ] 14 | then 15 | iptables -I INPUT -p tcp --dport 80 -j ACCEPT && 16 | iptables-save >/dev/null 2>&1 17 | else 18 | echo -e "\033[32m iptables is stopd\033[0m" 19 | fi 20 | IP=`/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/1p'|sed -n '1p'` 21 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 22 | setenforce 0 23 | rpm -Uvh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 1>/dev/null 24 | yum -y install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-CGI-SpeedCGI perl-Time-HiRes perl-ExtUtils-MakeMaker perl-RRD-Simple rrdtool rrdtool-perl curl fping echoping httpd httpd-devel gcc make wget libxml2-devel libpng-devel glib pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl gcc libart_lgpl-devel mod_fastcgi wget wqy-* 25 | if [ -d /opt ];then 26 | cd /opt 27 | else 28 | mkdir -p /opt && cd /opt 29 | fi 30 | wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz 31 | tar -xvf smokeping-2.6.11.tar.gz 1>/dev/null 32 | cd /opt/smokeping-2.6.11 33 | ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty 34 | ./configure -prefix=/usr/local/smokeping 35 | /usr/bin/gmake install 1>/dev/null 36 | cd /usr/local/smokeping 37 | mkdir cache data var 1>/dev/null 38 | touch /var/log/smokeping.log 39 | chown -R apache:apache cache data var 40 | chown -R apache:apache /var/log/smokeping.log 41 | mv /usr/local/smokeping/htdocs/smokeping.fcgi.dist /usr/local/smokeping/htdocs/smokeping.fcgi 42 | mv /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config 43 | cp -f /usr/local/smokeping/etc/config /usr/local/smokeping/etc/config.back 44 | sed -i "s/some.url/IP/g" /usr/local/smokeping/etc/config 45 | chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist 46 | 47 | if [ -d /opt ];then 48 | cd /opt 49 | else 50 | mkdir -p /opt && cd /opt 51 | fi 52 | wget -c -O /opt/fping-3.13.tar.gz http://fping.org/dist/fping-3.13.tar.gz 53 | tar zxvf fping-3.13.tar.gz 54 | cd fping-3.13 55 | ./configure --prefix=/usr/local/fping 56 | make && make install 57 | sed -i "s#`grep fping /usr/local/smokeping/etc/config`#binary = /usr/local/fping/sbin/fping#g" /usr/local/smokeping/etc/config 58 | sed -i "148i'--font TITLE:20:"WenQuanYi\ Zen\ Hei\ Mono"'\," /usr/local/smokeping/lib/Smokeping/Graphs.pm 59 | cp -rf /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.back 60 | cat >> /etc/httpd/conf/httpd.conf <<'EOF' 61 | Alias /cache "/usr/local/smokeping/cache/" 62 | Alias /cropper "/usr/local/smokeping/htdocs/cropper/" 63 | Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi" 64 | 65 | AllowOverride None 66 | Options All 67 | AddHandler cgi-script .fcgi .cgi 68 | Order allow,deny 69 | Allow from all 70 | DirectoryIndex smokeping.fcgi 71 | 72 | EOF 73 | 74 | if [ -f /etc/init.d/smokeping ];then 75 | echo "/etc/init.d/smokeping is exist" 76 | else 77 | touch /etc/init.d/smokeping 78 | cat > /etc/init.d/smokeping <<'EOF' 79 | #!/bin/bash 80 | #chkconfig: 2345 80 05 81 | # Description: Smokeping init.d script 82 | # Create by : Mox 83 | # Get function from functions library 84 | . /etc/init.d/functions 85 | # Start the service Smokeping 86 | smokeping=/usr/local/smokeping/bin/smokeping 87 | prog=smokeping 88 | pidfile=${PIDFILE-/usr/local/smokeping/var/smokeping.pid} 89 | lockfile=${LOCKFILE-/var/lock/subsys/smokeping} 90 | RETVAL=0 91 | STOP_TIMEOUT=${STOP_TIMEOUT-10} 92 | LOG=/var/log/smokeping.log 93 | 94 | start() { 95 | echo -n $"Starting $prog: " 96 | LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $smokeping $OPTIONS 97 | RETVAL=$? 98 | echo 99 | [ $RETVAL = 0 ] && touch ${lockfile} 100 | return $RETVAL 101 | } 102 | 103 | 104 | # Restart the service Smokeping 105 | stop() { 106 | echo -n $"Stopping $prog: " 107 | killproc -p ${pidfile} -d ${STOP_TIMEOUT} $smokeping 108 | RETVAL=$? 109 | echo 110 | [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} 111 | } 112 | 113 | STOP_TIMEOUT=${STOP_TIMEOUT-10} 114 | LOG=/var/log/smokeping.log 115 | 116 | start() { 117 | echo -n $"Starting $prog: " 118 | LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $smokeping $OPTIONS 119 | RETVAL=$? 120 | echo 121 | [ $RETVAL = 0 ] && touch ${lockfile} 122 | return $RETVAL 123 | } 124 | 125 | 126 | # Restart the service Smokeping 127 | stop() { 128 | echo -n $"Stopping $prog: " 129 | killproc -p ${pidfile} -d ${STOP_TIMEOUT} $smokeping 130 | RETVAL=$? 131 | echo 132 | [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} 133 | } 134 | 135 | case "$1" in 136 | start) 137 | start 138 | ;; 139 | stop) 140 | stop 141 | ;; 142 | status) 143 | status -p ${pidfile} $httpd 144 | RETVAL=$? 145 | ;; 146 | restart) 147 | stop 148 | start 149 | ;; 150 | *) 151 | echo $"Usage: $prog {start|stop|restart|status}" 152 | RETVAL=2 153 | 154 | esac 155 | 156 | EOF 157 | fi 158 | 159 | cat > /usr/local/smokeping/etc/config <<'EOF' 160 | *** General *** 161 | 162 | owner = Peter Random 163 | contact = service02@51idc.com 164 | #mailhost = smtp.51idc.com:25 165 | #mailusr = xuel@51idc 166 | #mailpwd = anchnet@123.com 167 | #sendmail = /usr/sbin/sendmail 168 | # NOTE: do not put the Image Cache below cgi-bin 169 | # since all files under cgi-bin will be executed ... this is not 170 | # good for images. 171 | imgcache = /usr/local/smokeping/cache 172 | imgurl = cache 173 | datadir = /usr/local/smokeping/data 174 | piddir = /usr/local/smokeping/var 175 | cgiurl = http://$IP/smokeping.cgi 176 | smokemail = /usr/local/smokeping/etc/smokemail.dist 177 | tmail = /usr/local/smokeping/etc/tmail.dist 178 | # specify this to get syslog logging 179 | syslogfacility = local0 180 | # each probe is now run in its own process 181 | # disable this to revert to the old behaviour 182 | # concurrentprobes = no 183 | 184 | *** Alerts *** 185 | to = 13122690827@163.com 186 | from = service02@51idc.com 187 | 188 | +someloss 189 | type = loss 190 | # in percent 191 | pattern = >0%,*12*,>0%,*12*,>0% 192 | comment = loss 3 times in a row 193 | 194 | +rttdetect 195 | type = rtt 196 | #in milli seconds 197 | pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100 198 | edgetrigger = yes 199 | comment = routing messed up again ? 200 | 201 | +lossdetect 202 | type = loss 203 | # in percent 204 | pattern = ==0%,==0%,==0%,==0%,>20%,>20%,>20% 205 | edgetrigger = yes 206 | comment = suddenly there is packet loss 207 | 208 | +miniloss 209 | type = loss 210 | # in percent 211 | pattern = >0%,*12*,>0%,*12*,>0% 212 | edgetrigger = yes 213 | #pattern = >0%,*12* 214 | comment = detected loss 1 times over the last two hours 215 | 216 | #+rttdetect 217 | #type = rtt 218 | # in milliseconds 219 | #pattern = <1,<1,<1,<1,<1,<2,>2,>2,>2 220 | #comment = routing messed up again ? 221 | 222 | +rttbad 223 | type = rtt 224 | # in milliseconds 225 | edgetrigger = yes 226 | pattern = ==S,>20 227 | comment = route 228 | 229 | +rttbadstart 230 | type = rtt 231 | # in milliseconds 232 | edgetrigger = yes 233 | pattern = ==S,==U 234 | comment = offline at startup 235 | *** Database *** 236 | 237 | step = 60 238 | pings = 20 239 | 240 | # consfn mrhb steps total 241 | 242 | AVERAGE 0.5 1 1008 243 | AVERAGE 0.5 12 4320 244 | MIN 0.5 12 4320 245 | MAX 0.5 12 4320 246 | AVERAGE 0.5 144 720 247 | MAX 0.5 144 720 248 | MIN 0.5 144 720 249 | 250 | *** Presentation *** 251 | charset = utf-8 252 | template = /usr/local/smokeping/etc/basepage.html.dist 253 | 254 | + charts 255 | 256 | menu = 排行榜 257 | title = 排行榜 258 | 259 | ++ stddev 260 | sorter = StdDev(entries=>4) 261 | title = 综合指数排行 262 | menu = 综合指数排行 263 | format = 综合指数 %f 264 | 265 | ++ max 266 | sorter = Max(entries=>5) 267 | title = 最大延迟排行 268 | menu = 最大延迟排行 269 | format = 最大延迟时间 %f 秒 270 | 271 | ++ loss 272 | sorter = Loss(entries=>5) 273 | title = 丢包率排行 274 | menu = 丢包率排行 275 | format = 丢包 %f 276 | 277 | ++ median 278 | sorter = Median(entries=>5) 279 | title = 平均延迟排行 280 | menu = 平均延迟排行 281 | format = 平均延迟 %f 秒 282 | 283 | + overview 284 | 285 | width = 860 286 | height = 150 287 | range = 10h 288 | 289 | + detail 290 | 291 | width = 860 292 | height = 200 293 | unison_tolerance = 2 294 | 295 | "Last 3 Hours" 3h 296 | "Last 30 Hours" 30h 297 | "Last 10 Days" 10d 298 | "Last 30 Days" 30d 299 | "Last 90 Days" 90d 300 | #+ hierarchies 301 | #++ owner 302 | #title = Host Owner 303 | #++ location 304 | #title = Location 305 | 306 | *** Probes *** 307 | 308 | + FPing 309 | 310 | binary = /usr/local/fping/sbin/fping 311 | 312 | *** Slaves *** 313 | secrets=/usr/local/smokeping/etc/smokeping_secrets.dist 314 | +boomer 315 | display_name=boomer 316 | color=0000ff 317 | 318 | +slave2 319 | display_name=another 320 | color=00ff00 321 | 322 | *** Targets *** 323 | 324 | probe = FPing 325 | 326 | menu = Top 327 | #title = Network Latency Grapher 328 | title = IDC网络节点质量监控 329 | #remark = Welcome to the SmokePing website of xxx Company. \ 330 | # Here you will learn all about the latency of our network. 331 | remark = Smokeping 网络质量监控系统 332 | 333 | 334 | + TELCOM 335 | 336 | menu = 电信 337 | 338 | title = 电信 339 | 340 | ++ north 341 | menu = 华北区 342 | 343 | title = 华北区 344 | 345 | 346 | +++ beijing 347 | menu = 北京 348 | 349 | title = 北京:218.30.25.45 350 | 351 | host = 218.30.25.45 352 | 353 | 354 | +++ tianjin 355 | menu = 天津 356 | 357 | title = 天津:219.150.32.132 358 | 359 | host = 219.150.32.132 360 | 361 | 362 | +++ shijiazhuang 363 | menu = 石家庄 364 | 365 | title = 石家庄:123.180.0.1 366 | 367 | host = 123.180.0.1 368 | 369 | 370 | +++ huhehaote 371 | menu = 呼和浩特 372 | 373 | title = 呼和浩特:219.148.168.218 374 | 375 | host = 219.148.168.218 376 | 377 | ++ northeast 378 | menu = 东北区 379 | 380 | title = 东北区 381 | 382 | 383 | +++ qiqihaer 384 | menu = 齐齐哈尔 385 | 386 | title = 齐齐哈尔:222.170.0.61 387 | 388 | host = 222.170.0.61 389 | 390 | 391 | +++ changchun 392 | menu = 长春 393 | 394 | title = 长春:222.168.78.1 395 | 396 | host = 222.168.78.1 397 | 398 | 399 | +++ jilin 400 | menu = 吉林 401 | 402 | title = 吉林:123.173.127.2 403 | 404 | host = 123.173.127.2 405 | 406 | ++ east 407 | menu = 华东区 408 | 409 | title = 华东区 410 | 411 | 412 | +++ jinan 413 | menu = 济南 414 | 415 | title = 济南:58.56.25.4 416 | 417 | host = 58.56.25.4 418 | 419 | 420 | +++ shanghai 421 | menu = 上海 422 | 423 | title = 上海:116.228.111.118 424 | 425 | host = 116.228.111.118 426 | 427 | 428 | +++ nanjing 429 | menu = 南京 430 | 431 | title = 南京:221.231.191.214 432 | 433 | host = 221.231.191.214 434 | 435 | 436 | +++ hefei 437 | menu = 合肥 438 | 439 | title = 合肥:61.190.246.5 440 | 441 | host = 61.190.246.5 442 | 443 | 444 | +++ nanchang 445 | menu = 南昌 446 | 447 | title = 南昌:202.101.224.68 448 | 449 | host = 202.101.224.68 450 | 451 | 452 | +++ hangzhou 453 | menu = 杭州 454 | 455 | title = 杭州:60.191.62.31 456 | 457 | host = 60.191.62.31 458 | 459 | 460 | +++ fuzhou 461 | menu = 福州 462 | 463 | title = 福州:202.101.98.55 464 | 465 | host = 202.101.98.55 466 | 467 | ++ south 468 | menu = 中南区 469 | 470 | title = 中南区 471 | 472 | 473 | +++ luoyang 474 | menu = 洛阳 475 | 476 | title = 洛阳:123.52.130.12 477 | 478 | host = 123.52.130.12 479 | 480 | 481 | +++ wuhan 482 | menu = 武汉 483 | 484 | title = 武汉:111.175.233.30 485 | 486 | host = 111.175.233.30 487 | 488 | 489 | +++ changsha 490 | menu = 长沙 491 | 492 | title = 长沙:124.232.134.54 493 | 494 | host = 124.232.134.54 495 | 496 | 497 | +++ guangzhou 498 | menu = 广州 499 | 500 | title = 广州:58.61.200.1 501 | 502 | host = 58.61.200.1 503 | 504 | 505 | +++ shenzhen 506 | menu = 深圳 507 | 508 | title = 深圳:58.60.3.102 509 | 510 | host = 58.60.3.102 511 | 512 | 513 | +++ nanning 514 | menu = 南宁 515 | 516 | title = 南宁:222.217.164.38 517 | 518 | host = 222.217.164.38 519 | 520 | 521 | +++ haikou 522 | menu = 海口 523 | 524 | title = 海口:218.77.149.238 525 | 526 | host = 218.77.149.238 527 | 528 | ++ southwest 529 | menu = 西南区 530 | 531 | title = 西南区 532 | 533 | 534 | +++ chengdu 535 | menu = 成都 536 | 537 | title = 成都:61.157.77.1 538 | 539 | host = 61.157.77.1 540 | 541 | 542 | +++ chongqing 543 | menu = 重庆 544 | 545 | title = 重庆:218.70.65.254 546 | 547 | host = 218.70.65.254 548 | 549 | 550 | +++ guiyang 551 | menu = 贵阳 552 | 553 | title = 贵阳:59.51.128.31 554 | 555 | host = 59.51.128.31 556 | 557 | 558 | +++ kunming 559 | menu = 昆明 560 | 561 | title = 昆明:222.172.200.5 562 | host = 222.172.200.5 563 | 564 | 565 | +++ lasa 566 | menu = 拉萨 567 | 568 | title = 拉萨:124.31.0.1 569 | 570 | host = 124.31.0.1 571 | 572 | ++ northwest 573 | menu = 西北区 574 | 575 | title = 西北区 576 | 577 | 578 | +++ xian 579 | menu = 西安 580 | 581 | title = 西安:125.76.191.163 582 | alerts = someloss 583 | host = 125.76.191.163 584 | 585 | 586 | +++ ningxia 587 | menu = 宁夏 588 | 589 | title = 宁夏:124.224.255.54 590 | 591 | host = 124.224.255.54 592 | 593 | 594 | +++ lanzhou 595 | menu = 兰州 596 | 597 | title = 兰州:61.178.252.218 598 | 599 | host = 61.178.252.218 600 | 601 | 602 | +++ xining 603 | menu = 西宁 604 | 605 | title = 西宁:223.220.241.26 606 | 607 | host = 223.220.241.26 608 | 609 | 610 | +++ wulumuqi 611 | menu = 乌鲁木齐 612 | 613 | title = 乌鲁木齐:61.128.96.1 614 | 615 | host = 61.128.96.1 616 | 617 | + UNICOM 618 | menu = 联通 619 | 620 | title = 联通 621 | 622 | 623 | ++ north 624 | menu = 华北区 625 | 626 | title = 华北区 627 | 628 | 629 | +++ beijing 630 | menu = 北京 631 | 632 | title = 北京:61.135.150.3 633 | 634 | host = 61.135.150.3 635 | 636 | 637 | +++ tianjin 638 | menu = 天津 639 | 640 | title = 天津:202.99.96.38 641 | 642 | host = 202.99.96.38 643 | +++ shijiazhuang 644 | menu= 石家庄 645 | 646 | title = 石家庄:221.192.1.221 647 | 648 | host = 221.192.1.221 649 | 650 | 651 | +++ taiyuan 652 | menu = 太原 653 | 654 | title = 太原:218.26.171.2 655 | 656 | host = 218.26.171.2 657 | 658 | ++ northeast 659 | menu = 东北区 660 | 661 | title = 东北区 662 | 663 | 664 | +++ changchun 665 | menu = 长春 666 | 667 | title = 长春:125.32.127.2 668 | 669 | host = 125.32.127.2 670 | 671 | 672 | +++ shenyang 673 | menu = 沈阳 674 | 675 | title = 沈阳:218.60.54.164 676 | 677 | host = 218.60.54.164 678 | 679 | 680 | +++ jilin 681 | menu = 吉林 682 | 683 | title = 吉林:218.62.77.121 684 | 685 | host = 218.62.77.121 686 | 687 | ++ east 688 | menu = 华东区 689 | 690 | title = 华东区 691 | 692 | 693 | +++jinan 694 | menu = 济南 695 | 696 | title = 济南:221.0.2.41 697 | host = 221.0.2.41 698 | 699 | 700 | +++ shanghai 701 | menu = 上海 702 | 703 | title = 上海:210.22.67.1 704 | 705 | host = 210.22.67.1 706 | 707 | 708 | +++ hangzhou 709 | menu = 杭州 710 | 711 | title = 杭州:101.68.92.11 712 | 713 | host = 101.68.92.11 714 | 715 | 716 | +++ nanchang 717 | menu = 南昌 718 | 719 | title = 南昌:118.212.189.129 720 | 721 | host = 118.212.189.129 722 | 723 | ++ south 724 | menu = 中南区 725 | 726 | title = 中南区 727 | 728 | 729 | +++ zhengzhou 730 | menu = 郑州 731 | 732 | title = 郑州:61.168.254.211 733 | 734 | host = 61.168.254.211 735 | 736 | 737 | +++ wuhan 738 | menu = 武汉 739 | 740 | title = 武汉:218.106.115.1 741 | 742 | host = 218.106.115.1 743 | 744 | 745 | +++ guangzhou 746 | menu = 广州 747 | 748 | title = 广州:211.95.193.69 749 | 750 | host = 211.95.193.69 751 | 752 | 753 | +++ shenzhen 754 | menu = 深圳 755 | 756 | title = 深圳:58.250.0.1 757 | 758 | host = 58.250.0.1 759 | 760 | 761 | +++ nanning 762 | menu = 南宁 763 | 764 | title = 南宁:211.97.71.202 765 | 766 | host = 211.97.71.202 767 | 768 | ++ southwest 769 | menu = 西南区 770 | 771 | title = 西南区 772 | 773 | 774 | +++ chongqing 775 | menu = 重庆 776 | 777 | title = 重庆:221.5.255.1 778 | 779 | host = 221.5.255.1 780 | ++ northwest 781 | menu = 西北区 782 | 783 | title = 西北区 784 | 785 | 786 | +++ xining 787 | menu = 西宁 788 | 789 | title = 西宁:221.207.27.1 790 | 791 | host = 221.207.27.1 792 | 793 | ++ ceshiqu 794 | menu = 测试区1 795 | 796 | title = 测试区1 797 | 798 | 799 | +++ test1 800 | menu = 长春联通 801 | 802 | title = 长春联通:119.48.221.29 803 | 804 | host = 119.48.221.29 805 | 806 | 807 | 808 | +++ test2 809 | menu = 广东网通 810 | 811 | title = 广东网通:120.84.0.1 812 | 813 | host = 120.84.0.1 814 | 815 | 816 | +++ test3 817 | menu = 上海网通 818 | 819 | title = 上海网通:210.22.67.1 820 | 821 | host = 210.22.67.1 822 | 823 | 824 | +++ test4 825 | menu = 海南网通 826 | 827 | title = 海南网通:221.11.132.2 828 | 829 | host = 221.11.132.2 830 | 831 | 832 | +++ test5 833 | menu = 贵州联通 834 | 835 | title = 贵州联通:221.13.21.194 836 | 837 | host = 221.13.21.194 838 | 839 | 840 | +++ test6 841 | menu = 广西联通 842 | 843 | title = 广西联通:221.7.136.68 844 | 845 | host = 221.7.136.68 846 | 847 | 848 | +++ test7 849 | menu = 北京联通 850 | 851 | title = 北京联通:60.30.128.1 852 | 853 | host = 60.30.128.1 854 | 855 | 856 | 857 | +++ test8 858 | menu = 北京移动 859 | 860 | title = 北京移动:218.205.128.1 861 | 862 | host = 218.205.128.1 863 | 864 | 865 | 866 | +++ test9 867 | menu = 海口移动 868 | 869 | title = 海口移动:221.182.227.1 870 | 871 | host = 221.182.227.1 872 | 873 | 874 | +++ test10 875 | menu = 武汉铁通 876 | 877 | title = 武汉铁通:61.232.206.1 878 | 879 | host = 61.232.206.1 880 | 881 | + CMCC 882 | menu = 移动 883 | 884 | title = 移动 885 | 886 | 887 | ++ north 888 | menu = 华北区 889 | 890 | title = 华北区 891 | 892 | 893 | +++ beijing 894 | menu = 北京 895 | 896 | title = 北京:221.130.33.1 897 | 898 | host = 221.130.33.1 899 | 900 | 901 | +++ tianjin 902 | menu = 天津 903 | 904 | title = 天津:211.137.160.1 905 | 906 | host = 211.137.160.1 907 | 908 | 909 | +++ qinhuangdao 910 | menu = 秦皇岛 911 | 912 | title = 秦皇岛:211.143.111.14 913 | 914 | host = 211.143.111.14 915 | 916 | 917 | +++ shijiazhuang 918 | menu = 石家庄 919 | 920 | title = 石家庄:111.11.64.142 921 | 922 | host = 111.11.64.142 923 | 924 | 925 | ++ northeast 926 | menu = 东北区 927 | 928 | title = 东北区 929 | 930 | 931 | +++ dalian 932 | menu = 大连 933 | 934 | title = 大连:211.140.192.4 935 | 936 | host = 211.140.192.4 937 | 938 | 939 | ++ east 940 | menu = 华东区 941 | 942 | title = 华东区 943 | 944 | 945 | +++ hefei 946 | menu = 合肥 947 | 948 | title = 合肥:211.138.191.65 949 | 950 | host = 211.138.191.65 951 | 952 | 953 | +++ nanjing 954 | menu = 南京 955 | 956 | title = 南京:120.195.118.1 957 | 958 | host = 120.195.118.1 959 | 960 | 961 | +++ jinan 962 | menu = 济南 963 | 964 | title = 济南:120.192.97.186 965 | 966 | host = 120.192.97.186 967 | 968 | 969 | +++ hangzhou 970 | menu = 杭州 971 | 972 | title = 杭州:111.1.33.222 973 | 974 | host = 111.1.33.222 975 | 976 | 977 | +++ nanchang 978 | menu = 南昌 979 | 980 | title = 南昌:218.204.68.41 981 | 982 | host = 218.204.68.41 983 | 984 | 985 | +++ jiangsu 986 | menu = 江苏 987 | 988 | title = 江苏:112.22.15.226 989 | 990 | host = 112.22.15.226 991 | 992 | 993 | ++ south 994 | menu = 中南区 995 | 996 | title = 中南区 997 | 998 | 999 | +++ zhengzhou 1000 | menu = 郑州 1001 | 1002 | title = 郑州:211.142.127.33 1003 | 1004 | host = 211.142.127.33 1005 | 1006 | 1007 | +++ guangzhou 1008 | menu = 广州 1009 | 1010 | title = 广州:211.139.145.254 1011 | 1012 | host = 211.139.145.254 1013 | 1014 | 1015 | +++ wuhan 1016 | menu = 武汉 1017 | 1018 | title = 武汉:211.137.79.134 1019 | 1020 | host = 211.137.79.134 1021 | 1022 | 1023 | +++ nanning 1024 | menu = 南宁 1025 | 1026 | title = 南宁:218.204.21.10 1027 | 1028 | host = 218.204.21.10 1029 | 1030 | 1031 | ++ southwest 1032 | menu = 西南区 1033 | 1034 | title = 西南区 1035 | 1036 | 1037 | +++ chengdu 1038 | menu = 成都 1039 | 1040 | title = 成都:111.9.16.23 1041 | 1042 | host = 111.9.16.23 1043 | 1044 | 1045 | +++ chongqing 1046 | menu = 重庆 1047 | 1048 | title = 重庆:218.206.10.211 1049 | 1050 | host = 218.206.10.211 1051 | 1052 | 1053 | ++ northwest 1054 | menu = 西北区 1055 | 1056 | title = 西北区 1057 | 1058 | + IDC 1059 | menu = IDC线路 1060 | title = IDC线路 1061 | 1062 | ++ wuxiIDC 1063 | menu = 无锡IDC 1064 | title = 无锡IDC 1065 | 1066 | +++ wuxiIDCdianxin 1067 | menu = 无锡电信 1068 | title = 无锡电信:221.228.82.70 1069 | host = 221.228.82.70 1070 | 1071 | +++ wuxiIDCBGP 1072 | menu = 无锡AC_BGP 1073 | title = 无锡AC_BGP:103.21.119.48 1074 | host = 103.21.119.48 1075 | 1076 | +++ wuxiliantong 1077 | menu = 无锡联通 1078 | title = 无锡联通:122.192.69.117 1079 | host = 122.192.69.117 1080 | 1081 | ++ hulanIDC 1082 | menu = 呼兰IDC 1083 | title = 呼兰IDC 1084 | 1085 | +++ hulanIDCdianxin 1086 | menu = 呼兰电信 1087 | title = 呼兰电信:101.227.69.37 1088 | host = 101.227.69.37 1089 | 1090 | +++ hulanIDCBGP 1091 | menu = 呼兰AC_BGP 1092 | title = 呼兰AC_BGP:103.20.251.7 1093 | host = 103.20.251.7 1094 | 1095 | +++ hulandianxinBGP 1096 | menu = 呼兰电信BGP 1097 | title = 呼兰电信BGP:114.141.133.146 1098 | host = 114.141.133.146 1099 | 1100 | ++ nanhuiIDC 1101 | menu = 南汇IDC 1102 | title = 南汇IDC 1103 | 1104 | +++ nanhuiIDCdianxin 1105 | menu = 南汇电信 1106 | title = 南汇电信:222.73.124.239 1107 | host = 222.73.124.239 1108 | 1109 | +++ nanhuiIDCliantong 1110 | menu = 南汇联通线路 1111 | title = 南汇联通:140.207.216.89 1112 | host = 140.207.216.89 1113 | 1114 | +++ nanhuiIDCBGP 1115 | menu = 南汇电信BGP线路 1116 | title = 南汇电信BGP:114.141.132.115 1117 | host = 114.141.132.115 1118 | 1119 | ++ jinhaiIDC 1120 | menu = 金海IDC 1121 | title = 金海IDC 1122 | 1123 | +++ jinhaiIDCdianxin 1124 | menu = 金海电信线路 1125 | title = 金海电信:114.80.200.47 1126 | host = 114.80.200.47 1127 | 1128 | +++ jinhaiIDCliantong 1129 | menu = 金海联通线路 1130 | title = 金海联通:140.207.213.59 1131 | host = 140.207.213.59 1132 | 1133 | ++ beiaiIDC 1134 | menu = 北艾IDC 1135 | title = 北艾IDC 1136 | 1137 | +++ beiaiIDCdianxin 1138 | menu = 北艾电信线路 1139 | title = 北艾电信:114.80.88.51 1140 | host = 114.80.88.51 1141 | 1142 | +++ beiaiIDCliantong 1143 | menu = 北艾联通线路 1144 | title = 北艾联通:112.65.240.161 1145 | host = 112.65.240.161 1146 | 1147 | ++ kunshanIDC 1148 | menu = 昆山IDC 1149 | title = 昆山IDC 1150 | 1151 | +++ kunshanIDCdianxin 1152 | menu = 昆山电线线路 1153 | title = 昆山电信:180.97.81.242 1154 | host = 180.97.81.242 1155 | 1156 | +++ kunshanIDCliantong 1157 | menu = 昆山联通线路 1158 | title = 昆山联通:112.80.41.244 1159 | host = 112.80.41.244 1160 | 1161 | ++ jinqiaoIDC 1162 | menu = 金桥IDC 1163 | title = 金桥IDC 1164 | 1165 | +++ jinqiaoIDCdianxin 1166 | menu = 金桥电信线路 1167 | title = 金桥电信:180.153.240.38 1168 | host = 180.153.240.38 1169 | 1170 | +++ jinqiaoIDCliantong 1171 | menu = 金桥联通线路 1172 | title = 金桥联通:112.65.234.34 1173 | host = 112.65.234.34 1174 | 1175 | ++ luguIDC 1176 | menu = 鲁谷IDC 1177 | title = 鲁谷IDC 1178 | 1179 | +++ luguIDCBGP 1180 | menu = 鲁谷BGP线路 1181 | title = 鲁谷BGP:24.202.141.142 1182 | host = 124.202.141.142 1183 | 1184 | ++ nujiangIDC 1185 | menu = 怒江IDC 1186 | title = 怒江IDC 1187 | 1188 | +++ nujiangIDCyidong 1189 | menu = 怒江移动线路 1190 | title = 怒江移动:221.181.64.2 1191 | host = 221.181.64.2 1192 | 1193 | ++ changshaIDC 1194 | menu = 长沙IDC 1195 | title = 长沙IDC 1196 | 1197 | +++ changshaIDCdianxin 1198 | menu = 长沙电信线路 1199 | title = 长沙电信:124.232.151.250 1200 | host = 124.232.151.250 1201 | 1202 | ++ yizhangIDC 1203 | menu = 亦庄IDC 1204 | title = 亦庄IDC 1205 | 1206 | +++ yizhuangIDCBGP 1207 | menu = 亦庄BGP线路 1208 | title = 亦庄BGP:43.240.245.247 1209 | host = 43.240.245.247 1210 | 1211 | ++ xianggangIDC 1212 | menu = 香港IDC 1213 | title = 香港IDC 1214 | 1215 | +++ xianggangIDCBGP 1216 | menu = 香港BGP线路 1217 | title = 香港BGP:118.193.128.4 1218 | host = 118.193.128.4 1219 | 1220 | +++ wuxiMPLS 1221 | menu = 无锡AC_BGP 1222 | title = 无锡MPLS:10.234.1.254 1223 | host = 10.234.1.254 1224 | 1225 | EOF 1226 | chmod +x /etc/init.d/smokeping 1227 | chkconfig smokeping on 1228 | chkconfig httpd on 1229 | /etc/init.d/httpd start 1230 | /etc/init.d/smokeping start 1231 | if [ $? -eq 0 ];then 1232 | echo -e "\\033[32m smokeping setup successfull URR:http://$IP/smokeping\\033[0m" 1233 | fi 1234 | -------------------------------------------------------------------------------- /install_zabbix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #Date 2017/1/20 3 | #mail xuel@51idc.com 4 | [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 5 | export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 6 | sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 7 | setenforce 0 8 | which ntpdate 9 | if [ $? -eq 0 ];then 10 | /usr/sbin/ntpdate time1.aliyun.com 11 | echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root 12 | else 13 | yum install ntpdate -y 14 | /usr/sbin/ntpdate time1.aliyun.com 15 | echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root 16 | fi 17 | clear 18 | echo "##########################################" 19 | echo "# Auto Install zabbix. ##" 20 | echo "# Press Ctrl + C to cancel ##" 21 | echo "# Any key to continue ##" 22 | echo "##########################################" 23 | echo "(1) Install zabbix3.0" 24 | echo "(2) Install zabbix3.2" 25 | echo "(3) Install zabbix3.4" 26 | echo "(4) EXIT" 27 | read -p "Please input your choice:" NUM 28 | case $NUM in 29 | 1) 30 | URL="http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm" 31 | VER=zabbix-3.0 32 | ;; 33 | 2) 34 | URL="http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm" 35 | VER=zabbix-3.2 36 | ;; 37 | 3) 38 | URL="http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm" 39 | VER=zabbix-3.4 40 | ;; 41 | 4) 42 | echo -e "\033[41;37m You choice channel! \033[0m" && exit 0 43 | ;; 44 | *) 45 | echo -e "\033[41;37m Input Error! Place input{1|2|3|4} \033[0m" && exit 1 46 | ;; 47 | esac 48 | clear 49 | echo -e "\033[32m You choice install $VER.Install\033[0m" 50 | echo -e "\033[5m Press any key to start install $VER... \033[0m" 51 | read -n 1 52 | TDIR=/tools 53 | IP=`ifconfig eth0 | grep "inet addr" | awk -F"[: ]+" '{print $4}'` 54 | yum remove php* -y 55 | rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm 56 | ls /etc/yum.repos.d/webtatic.repo 57 | if [ $? -eq 0 ];then 58 | yum -y install `yum list|grep php71w|awk '{printf ("%s ",$1)}'` --skip-broken 59 | fi 60 | if [ $? -eq 0 ];then 61 | sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini 62 | sed -i "s#`grep max_execution_time /etc/php.ini`#max_execution_time = 300#g" /etc/php.ini 63 | #max_execution_time = 30 64 | sed -i "s#`grep post_max_size /etc/php.ini`#post_max_size = 32M#g" /etc/php.ini 65 | sed -i "s#`grep max_input_time\ = /etc/php.ini`#max_input_time = 300#g" /etc/php.ini 66 | sed -i "s#`grep memory_limit /etc/php.ini`#memory_limit = 128M#g" /etc/php.ini 67 | fi 68 | service php-fpm start /tmp/php-install.log 2>&1 69 | STAT=`echo $?` 70 | PORT=`netstat -lntup|grep php-fpm|wc -l` 71 | if [ $STAT -eq 0 ] && [ $PORT -eq 1 ];then 72 | echo -e "\033[32m PHP is install success! \033[0m" 73 | else 74 | echo -e "\033[32m PHP install file.please check /tmp/php-install.log \033[0m" 75 | fi 76 | yum install -y ntpdate mailx dos2unix vim zcat wget net-snmp-utils gcc gcc-c++ autoconf httpd libxml* mysql mysql-server httpd-manual mod_ssl mod_perl mod_auth_mysql mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel fping 77 | clear 78 | service mysqld start 79 | groupadd zabbix -g 201 80 | useradd -g zabbix -u 201 -m -s /sbin/nologin zabbix 81 | rpm -ivh $URL 82 | ls /etc/yum.repos.d/zabbix.repo 83 | ZAB=`echo $?` 84 | if [ ! -d $TDIR ];then 85 | /bin/mkdir $TDIR && cd $TDIR 86 | fi 87 | if [ "$VER" == "zabbix-3.0" ];then 88 | yum install -y zabbix-agent.x86_64 zabbix-get.x86_64 zabbix-server-mysql.x86_64 zabbix-web.noarch zabbix-web-mysql.noarch 89 | elif [ "$VER" == "zabbix-3.2" ];then 90 | if [ -d $TDIR ];then 91 | cd $TDIR 92 | else 93 | /bin/mkdir $TDIR && cd $TDIR 94 | fi 95 | if [ $? -eq 0 ];then 96 | for PAG in zabbix-server-mysql-3.2.7-1.el6.x86_64.rpm zabbix-web-3.2.7-1.el6.noarch.rpm zabbix-web-mysql-3.2.7-1.el6.noarch.rpm 97 | do 98 | wget -c --timeout=5 http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/deprecated/$PAG 99 | done 100 | wget -c --timeout=5 http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.7-1.el6.x86_64.rpm 101 | yum localinstall -y zabbix-server-mysql* zabbix-web-mysql* zabbix-agent zabbix-web* 102 | if [ $? -eq 0 ];then 103 | exit 1 && echo "Zabbix Softward install fail,Please check dirname /tools" 104 | fi 105 | fi 106 | elif [ "$VER" == "zabbix-3.4" ];then 107 | if [ -d $TDIR ];then 108 | cd $TDIR 109 | else 110 | /bin/mkdir $TDIR && cd $TDIR 111 | fi 112 | if [ $? -eq 0 ];then 113 | for PAG in zabbix-server-mysql-3.4.0-1.el6.x86_64.rpm zabbix-web-3.4.0-1.el6.noarch.rpm zabbix-web-mysql-3.4.0-1.el6.noarch.rpm 114 | do 115 | wget -c --timeout=5 --tries=35 --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko)Chrome/10.0.648.204 Safari/534.16" http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/deprecated/$PAG 116 | done 117 | wget -c --timeout=5 --tries=35 --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko)Chrome/10.0.648.204 Safari/534.16" http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-agent-3.4.0-1.el6.x86_64.rpm 118 | yum localinstall -y zabbix-* 119 | if [ $? -ne 0 ];then 120 | "Zabbix Softward install fail,Please check dirname /tools" && exit 1 121 | fi 122 | fi 123 | else 124 | echo "error zabbixi version" 125 | fi 126 | if [ $? -eq 0 ];then 127 | mysql -uroot -e "create database zabbix character set utf8;" 128 | mysql -uroot -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" 129 | mysql -uroot -e "flush privileges;" 130 | fi 131 | cd /usr/share/doc 132 | MYSQLDIR=`ls -l /usr/share/doc/ | grep zabbix-server-mysql* | awk '{print $9}'` 133 | cd $MYSQLDIR 134 | zcat create.sql.gz | mysql -uroot zabbix 135 | mysqladmin -uroot password "mysqladmin" 136 | cd /usr/share/ 137 | cp -r ./zabbix/ /var/www/html/zabbix 138 | echo "DBPassword=zabbix" >> /etc/zabbix/zabbix_server.conf 139 | service httpd start 140 | service zabbix-server start 141 | service zabbix-agent start 142 | chkconfig httpd on 143 | chkconfig mysqld on 144 | chkconfig php-fpm on 145 | chkconfig zabbix-server on 146 | chkconfig zabbix-agent on 147 | /etc/init.d/iptables status >/dev/null 2>&1 148 | if [ $? -eq 0 ];then 149 | iptables -I INPUT -p tcp --dport 443 -j ACCEPT && 150 | iptables -I INPUT -p tcp --dport 10051 -j ACCEPT && 151 | iptables -I INPUT -p tcp --dport 10050 -j ACCEPT && 152 | iptables -I INPUT -p tcp --dport 3000 -j ACCEPT && 153 | #iptables -I INPUT -p tcp --dport 3306 -j ACCEPT && 154 | service iptables save >/dev/null 2>&1 155 | /etc/init.d/iptables restart 156 | else 157 | echo -e "\033[32m iptables is stopd\033[0m" 158 | fi 159 | clear 160 | STAT=`/bin/ps -ef|grep zabbix_server|grep -v grep|wc -l` 161 | PORT=`/bin/netstat -lntup|grep zabbix_server|wc -l` 162 | if [ $STAT -ne 0 ] && [ $PORT -ne 0 ];then 163 | echo -e "\033[42;37m Zabbix$VER is Install Success,Username:Admin Password:zabbix \033[0m" 164 | echo -e "\033[42;37m MySql Username:root Password:mysqladmin \033[0m" 165 | echo -e "\033[42;37m rul:https://$IP/zabbix \033[0m" 166 | fi 167 | -------------------------------------------------------------------------------- /linux_fanyi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # 4 | CMD=/usr/bin/yd 5 | 6 | cat >${CMD} </){i=0;}} if(/collinsToggle/){ j++;} if(j==1) {print \$0; if(/<\/ul>/){j=0;}}}' | sed 's/<[^>]*>//g' | sed 's/ //g'| sed 's/→//g' | sed 's/^\s*//g' | sed '/^$/d'> \$TEM_FILE 40 | 41 | # 处理输出 42 | is_head=true # 当前行是否属于“头部” 43 | head="" # 头部内容 44 | body="" # 主体内容 45 | ln_item=0 # 每一条解释的行号 46 | ln_eg=0 # 例句行号 47 | 48 | while read line 49 | do 50 | let ln_item++ 51 | let ln_eg++ 52 | num_flag=\$(echo "\$line" | awk '/[0-9]+\.\$/') 53 | if [ "\$num_flag" != "" ]; then ## 遇见'数字+点'开头的行 54 | is_head=false # 第一次遇见数字行 将头部标示设置为false 55 | ln_item=0 56 | fi 57 | 58 | eg_flag=\$(echo "\$line" | awk '/例:\$/') # 遇见'例:'开头的行 59 | if [ "\$eg_flag" != "" ]; then 60 | ln_eg=0 61 | fi 62 | 63 | if \$is_head ; then 64 | head="\$head \$line" 65 | else 66 | if [ \$ln_item == 0 ] ; then 67 | line="\033[32;1m\n\n\$line\033[0m" # 释义编号 68 | elif [ \$ln_item == 1 ] ; then 69 | line="\033[32;1m[\$line]\033[0m" # 词性 70 | elif [ \$ln_item == 2 ] ; then 71 | line="\033[1m\$line\033[0m" # 释义 72 | elif [ \$ln_eg == 0 ] ; then 73 | line="\033[32;1m\n \$line\033[0m" # 例: 74 | elif [ \$ln_eg == 1 ]; then 75 | line="\033[33m\$line\033[0m" # 例句 76 | elif [ \$ln_eg == 2 ]; then 77 | line="\033[33m\$line\033[0m" # 例句释义 78 | fi 79 | body="\$body \$line" 80 | fi 81 | done < \$TEM_FILE 82 | if \$example_enable 83 | then 84 | echo -e "\033[31;1m\$head\033[0m \$body" 85 | else 86 | echo -e "\033[31;1m\$head" 87 | fi 88 | echo -e "\033[33m \033[0m" 89 | exit 0 90 | EOF 91 | 92 | chmod +x ${CMD} 93 | 94 | -------------------------------------------------------------------------------- /mem_free.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # func: 配合定时任务,linux系统监控自动释放内存 3 | 4 | #内存使用超过阀值 5 | WARN_LINE=70 6 | # 日志记录文件 7 | LOG_DIR=/var/log/memfree/ 8 | [ ! -d ${LOG_DIR} ] && mkdir -p ${LOG_DIR} 9 | LOG_FILE=$(date +%F)-memefree.log 10 | LOG_TOTLE=${LOG_DIR}${LOG_FILE} 11 | 12 | # 内存总量 13 | MEM_TOTLE=$(free -m | awk 'NR==2{print $2}') 14 | 15 | # 内存使用量 16 | MEM_USE=$(free -m | awk 'NR==2{print $3}') 17 | 18 | # 已使用百分比 19 | #USE_PERCENT=$(printf "%5f" `echo "scale=5;${MEM_USE}/${MEM_TOTLE}"|bc`) 20 | USE_PERCENT=$(awk -v use=${MEM_USE} -v totle=${MEM_TOTLE} 'BEGIN{printf "%0.0f",use/totle*100}') 21 | 22 | echo ${USE_PERCENT} 23 | if [[ ${USE_PERCENT} -ge ${WARN_LINE} ]];then 24 | echo "---------$(date +%F" "%T) mem free begin---------" >> ${LOG_TOTLE} 25 | echo "内存释放前,使用情况如下:" >> ${LOG_TOTLE} 26 | free -m &>>${LOG_TOTLE} 27 | sync 28 | echo 1 > /proc/sys/vm/drop_caches 29 | echo 2 > /proc/sys/vm/drop_caches 30 | echo 3 > /proc/sys/vm/drop_caches 31 | echo "内存释放结束后,使用情况如下:" >> ${LOG_TOTLE} 32 | free -m &>>${LOG_TOTLE} 33 | echo "---------$(date +%F" "%T) mem free end---------" >> ${LOG_TOTLE} 34 | fi 35 | -------------------------------------------------------------------------------- /monitor_postgre.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # mail xuel@51idc.com 3 | data=`date +%Y-%M-%d" "%H:%m` 4 | netstat -lntup|grep 5432 && ps -ef|grep postmaster 5 | if [ $? -eq 0 ];then 6 | for IP in 172.17.10.188 172.17.10.189 7 | do 8 | /usr/bin/psql -h 172.17.10.190 -p 5432 -U repl -d postgres --command "select * from pg_stat_replication"|grep $IP 9 | if [ "$?" != "0" ];then 10 | echo 11 | "postgresql master-slave status is error! please login check!"|mail -r 12 | "xuel@51idc.com" -s "postgresql master-slave status is error" 13 | xuel@51idc.com \ 14 | && echo "$data postgresql postgresql master-slave status is error!">>/var/log/postgresql-error.log 15 | fi 16 | done 17 | else 18 | echo 19 | "postgresql master-slave status is error! please login check!"|mail -r 20 | "xuel@51idc.com" -s "postgresql master-slave status is error" 21 | xuel@51idc.com \ 22 | && echo "$data postgresql postgresql master-slave status is error!">>/var/log/postgresql-error.log 23 | fi 24 | 25 | -------------------------------------------------------------------------------- /scan_file.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #func:scan file 3 | #md5sum -c $SCAN_FILE 4 | 5 | 6 | SCAN_DIR=`echo $PATH |sed 's/:/ /g'` 7 | SCAN_CMD=`which md5sum` 8 | SCAN_FILE_FAIL="/tmp/scan_$(date +%F%H%m)_fall.txt" 9 | SCAN_FILE_BIN="/tmp/scan_$(date +%F%H%m)_bin.txt" 10 | 11 | scan_fall_disk() { 12 | echo "正在全盘扫描,请稍等!文件路径:$SCAN_FILE_FALL" 13 | find / -type f ! -path "/proc/*" -exec $SCAN_CMD \{\} \;>> $SCAN_FILE_FAIL 2>/dev/null 14 | echo "扫描完成,可利用以下命令后期对文件进行校验" 15 | echo "$SCAN_CMD -c $SCAN_FILE_FAIL |grep -v 'OK$'" 16 | } 17 | 18 | scan_bin() { 19 | echo "正在扫描$PATH可执行文件,请稍等,文件路径:$SCAN_FILE_BIN" 20 | for file in $SCAN_DIR 21 | do 22 | find $file -type f -exec $SCAN_CMD \{\} \;>> $SCAN_FILE_BIN 2>/dev/null 23 | done 24 | echo "扫描完成,可利用以下命令后期对文件进行校验" 25 | echo "$SCAN_CMD -c $SCAN_FILE_BIN |grep -v 'OK$'" 26 | } 27 | 28 | clear 29 | echo "##########################################" 30 | echo "# #" 31 | echo "# 利用md5sum对文件进行校验 #" 32 | echo "# #" 33 | echo "##########################################" 34 | echo "1: 全盘扫描" 35 | echo "2: bin path扫描" 36 | echo "3: EXIT" 37 | # 选择扫描方式 38 | read -p "Please input your choice:" method 39 | case $method in 40 | 1) 41 | scan_fall_disk;; 42 | 2) 43 | scan_bin;; 44 | 3) 45 | echo "you choce channel!" && exit 1;; 46 | *) 47 | echo "input Error! Place input{1|2|3}" && exit 0;; 48 | esac 49 | 50 | -------------------------------------------------------------------------------- /sys_check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # auth:kaliarch 3 | # func:sys info check 4 | # version:v1.0 5 | # sys:centos6.x/7.x 6 | 7 | [ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本!" && exit 1 8 | sysversion=$(rpm -q centos-release|cut -d- -f3) 9 | line="-------------------------------------------------" 10 | 11 | 12 | [ -d logs ] || mkdir logs 13 | 14 | sys_check_file="logs/$(ip a show dev eth0|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}')-`date +%Y%m%d`.txt" 15 | 16 | # 获取系统cpu信息 17 | function get_cpu_info() { 18 | Physical_CPUs=$(grep "physical id" /proc/cpuinfo| sort | uniq | wc -l) 19 | Virt_CPUs=$(grep "processor" /proc/cpuinfo | wc -l) 20 | CPU_Kernels=$(grep "cores" /proc/cpuinfo|uniq| awk -F ': ' '{print $2}') 21 | CPU_Type=$(grep "model name" /proc/cpuinfo | awk -F ': ' '{print $2}' | sort | uniq) 22 | CPU_Arch=$(uname -m) 23 | cat </dev/null) 130 | if [ ${sysversion} -gt 6 ];then 131 | service_config=$(systemctl list-unit-files --type=service --state=enabled|grep "enabled") 132 | run_service=$(systemctl list-units --type=service --state=running |grep ".service") 133 | else 134 | service_config=$(/sbin/chkconfig | grep -E ":on|:启用" |column -t) 135 | run_service=$(/sbin/service --status-all|grep -E "running") 136 | fi 137 | cat </dev/null|cut -d/ -f5;egrep -v "^$|^#" ${cronuser} 2>/dev/null;echo "";done) 163 | cat < ${sys_check_file} 227 | --------------------------------------------------------------------------------