├── .gitattributes ├── ftp_backup.sh ├── rsyncd.conf ├── test_91yun.sh ├── ubutun_kernel.sh └── vm_check.sh /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /ftp_backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 3 | export PATH 4 | #============================================== 5 | #www.9yun.org备份数据相关设置 6 | #============================================== 7 | 8 | #数据库用户名 9 | dbuser='root' 10 | #数据库用密码 11 | dbpasswd='rootpassword' 12 | #需要备份的数据库,多个数据库用空格分开 13 | dbname='91yun' 14 | #要备份的网站地址 15 | webbakpath='/home/wwwroot/www.91yun.org' 16 | #备份时间 17 | backtime=`date +%Y%m%d` 18 | #删除备份的时间(保留7天) 19 | deldate=` date -d -7day +%Y%m%d ` 20 | #数据备份路径 21 | datapath='/home/bak/www.91yun.org' 22 | 23 | mkdir -p $datapath 24 | 25 | #============================================== 26 | #www.9yun.orgFTP相关设置 27 | #============================================== 28 | 29 | #ftp地址 30 | ftpserver='www.91yun.org' 31 | #ftp端口 32 | ftpprot='21' 33 | #ftp用户名 34 | ftpuser='www.91yun.org' 35 | #ftp密码 36 | ftppassword='www.91yun.org' 37 | 38 | #============================================== 39 | #www.9yun.org开始备份 40 | #============================================== 41 | 42 | #正式备份数据库 43 | for table in $dbname; do 44 | source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${datapath}/${backtime}.sql` 2>> ${datapath}/mysqllog.log; 45 | #备份成功以下操作 46 | if [ "$?" == 0 ];then 47 | cd $datapath 48 | #为节约硬盘空间,将数据库压缩 49 | tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null 50 | #同时压缩打包网站程序 51 | tar jcf ${table}web${backtime}.tar.bz2 ${webbakpath}/ > /dev/null 52 | #删除原始文件,只留压缩后文件 53 | rm -f ${datapath}/${backtime}.sql 54 | #删除七天前备份,也就是只保存7天内的备份 55 | find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1 56 | fi 57 | done 58 | 59 | #============================================== 60 | #www.9yun.org开始FTP上传 61 | #============================================== 62 | ftp -n<&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}') 21 | ipaddress=$(ping -c1 -n `awk -F'/' '{print $3}' <<< $1` | awk -F'[()]' '{print $2;exit}') 22 | nodeName=$2 23 | if [ "${#nodeName}" -lt "8" ]; then 24 | echo -e "$2\t\t\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 25 | elif [ "${#nodeName}" -lt "13" ]; then 26 | echo -e "$2\t\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 27 | elif [ "${#nodeName}" -lt "24" ]; then 28 | echo -e "$2\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 29 | elif [ "${#nodeName}" -ge "24" ]; then 30 | echo -e "$2\t$ipaddress\t\t$speedtest" | tee -a $logfilename 31 | fi 32 | } 33 | 34 | speed_test_v6() { 35 | speedtest=$(wget -6O /dev/null -T300 $1 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}') 36 | ipaddress=$(ping6 -c1 -n `awk -F'/' '{print $3}' <<< $1` | awk -F'[()]' '{print $2;exit}') 37 | nodeName=$2 38 | if [ "${#nodeName}" -lt "8" -a "${#ipaddress}" -eq "13" ]; then 39 | echo -e "$2\t\t\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 40 | elif [ "${#nodeName}" -lt "13" -a "${#ipaddress}" -eq "13" ]; then 41 | echo -e "$2\t\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 42 | elif [ "${#nodeName}" -lt "24" -a "${#ipaddress}" -eq "13" ]; then 43 | echo -e "$2\t\t$ipaddress\t\t$speedtest" | tee -a $logfilename 44 | elif [ "${#nodeName}" -lt "24" -a "${#ipaddress}" -gt "13" ]; then 45 | echo -e "$2\t\t$ipaddress\t$speedtest" | tee -a $logfilename 46 | elif [ "${#nodeName}" -ge "24" ]; then 47 | echo -e "$2\t$ipaddress\t$speedtest" | tee -a $logfilename 48 | fi 49 | } 50 | 51 | speed() { 52 | speed_test 'http://cachefly.cachefly.net/100mb.test' 'CacheFly' 53 | speed_test 'http://speedtest.tokyo.linode.com/100MB-tokyo.bin' 'Linode, Tokyo, JP' 54 | speed_test 'http://speedtest.singapore.linode.com/100MB-singapore.bin' 'Linode, Singapore, SG' 55 | speed_test 'http://speedtest.london.linode.com/100MB-london.bin' 'Linode, London, UK' 56 | speed_test 'http://speedtest.frankfurt.linode.com/100MB-frankfurt.bin' 'Linode, Frankfurt, DE' 57 | speed_test 'http://speedtest.fremont.linode.com/100MB-fremont.bin' 'Linode, Fremont, CA' 58 | speed_test 'http://speedtest.dal05.softlayer.com/downloads/test100.zip' 'Softlayer, Dallas, TX' 59 | speed_test 'http://speedtest.sea01.softlayer.com/downloads/test100.zip' 'Softlayer, Seattle, WA' 60 | speed_test 'http://speedtest.fra02.softlayer.com/downloads/test100.zip' 'Softlayer, Frankfurt, DE' 61 | speed_test 'http://speedtest.sng01.softlayer.com/downloads/test100.zip' 'Softlayer, Singapore, SG' 62 | speed_test 'http://speedtest.hkg02.softlayer.com/downloads/test100.zip' 'Softlayer, HongKong, CN' 63 | } 64 | 65 | speed_v6() { 66 | speed_test_v6 'http://speedtest.atlanta.linode.com/100MB-atlanta.bin' 'Linode, Atlanta, GA' 67 | speed_test_v6 'http://speedtest.dallas.linode.com/100MB-dallas.bin' 'Linode, Dallas, TX' 68 | speed_test_v6 'http://speedtest.newark.linode.com/100MB-newark.bin' 'Linode, Newark, NJ' 69 | speed_test_v6 'http://speedtest.singapore.linode.com/100MB-singapore.bin' 'Linode, Singapore, SG' 70 | speed_test_v6 'http://speedtest.tokyo.linode.com/100MB-tokyo.bin' 'Linode, Tokyo, JP' 71 | speed_test_v6 'http://speedtest.sjc03.softlayer.com/downloads/test100.zip' 'Softlayer, San Jose, CA' 72 | speed_test_v6 'http://speedtest.wdc01.softlayer.com/downloads/test100.zip' 'Softlayer, Washington, WA' 73 | speed_test_v6 'http://speedtest.par01.softlayer.com/downloads/test100.zip' 'Softlayer, Paris, FR' 74 | speed_test_v6 'http://speedtest.sng01.softlayer.com/downloads/test100.zip' 'Softlayer, Singapore, SG' 75 | speed_test_v6 'http://speedtest.tok02.softlayer.com/downloads/test100.zip' 'Softlayer, Tokyo, JP' 76 | } 77 | 78 | io_test() { 79 | (LANG=en_US dd if=/dev/zero of=test_$$ bs=64k count=16k conv=fdatasync && rm -f test_$$ ) 2>&1 | awk -F, '{io=$NF} END { print io}' | sed 's/^[ \t]*//;s/[ \t]*$//' 80 | } 81 | #=================teddey用到的函数结束================================================= 82 | 83 | #=================以下是我自己写的网络mtr和ping用到的函数============================== 84 | 85 | #测试来路路由 86 | mtrgo(){ 87 | mtrurl=$1 88 | nodename=$2 89 | echo "===测试 [$nodename] 到这台服务器的路由===" | tee -a $logfilename 90 | mtrgostr=$(curl -s "$mtrurl") 91 | #echo $mtrgostr >> $logfilename 92 | echo $mtrgostr > mtrlog.log 93 | mtrgostrback=$(curl -s -d @mtrlog.log "http://test.91yun.org/traceroute.php") 94 | rm -rf mtrlog.log 95 | echo -e $mtrgostrback | awk -F '^' '{printf("%-2s\t%-16s\t%-35s\t%-30s\t%-25s\n",$1,$2,$3,$4,$5)}' | tee -a $logfilename 96 | echo -e "=== [$nodename] 路由测试结束===\n\n" | tee -a $logfilename 97 | } 98 | 99 | #测试回程路由 100 | mtrback(){ 101 | echo "===测试 [$2] 的回程路由===" | tee -a $logfilename 102 | mtr -r -c 10 $1 | tee -a $logfilename 103 | echo -e "===回程 [$2] 路由测试结束===\n\n" | tee -a $logfilename 104 | 105 | } 106 | 107 | #测试全国ping值 108 | pingtest(){ 109 | echo "===开始进行全国PING测试===" | tee -a $logfilename 110 | pingurl="http://www.ipip.net/ping.php?a=send&host=$1&area%5B%5D=china" 111 | pingstr=$(curl -s "$pingurl") 112 | #echo $pingstr >> $logfilename 113 | echo $pingstr > pingstr.log 114 | pingstrback_all=$(curl -s -d @pingstr.log "http://test.91yun.org/ping.php?ping") 115 | pingstrback=$(curl -s -d @pingstr.log "http://test.91yun.org/ping.php") 116 | rm -rf pingstr.log 117 | echo "===all ping start===" >> $logfilename 118 | echo -e $pingstrback_all | awk -F '^' '{printf("%-3s\t%-30s\t%-15s\t%-20s\t%-3s\t%-7s\t%-7s\t%-7s\t%-3s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> $logfilename 119 | echo -e "===all ping end===\n\n" >> $logfilename 120 | echo "===ping show===" >> $logfilename 121 | echo -e $pingstrback | awk -F '^' '{printf("%-10s\t%-10s\t%-30s\t%-10s\t%-30s\t%-30s\t%-30s\n",$1,$2,$3,$4,$5,$6,$7)}' | tee -a $logfilename 122 | echo -e "===ping show end===\n\n" >> $logfilename 123 | echo "===进行全国PING测试结束===" | tee -a $logfilename 124 | 125 | } 126 | 127 | #测试跳板ping 128 | #参数1,ping的地址 129 | #参数2,描述 130 | testping() 131 | { 132 | echo "{start testing $2 ping}" | tee -a $logfilename 133 | ping -c 10 $1 | tee -a $logfilename 134 | echo "{end testing}" | tee -a $logfilename 135 | } 136 | #==========================自用函数结束======================================== 137 | 138 | #获取各种系统信息 139 | cname=$( awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//' ) 140 | cores=$( awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo ) 141 | freq=$( awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//' ) 142 | tram=$( free -m | awk '/Mem/ {print $2}' ) 143 | swap=$( free -m | awk '/Swap/ {print $2}' ) 144 | up=$( awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=$1%60} {printf("%ddays, %d:%d:%d\n",a,b,c,d)}' /proc/uptime ) 145 | opsy=$( get_opsy ) 146 | arch=$( uname -m ) 147 | lbit=$( getconf LONG_BIT ) 148 | host=$hostp 149 | up=$( awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=$1%60} {printf("%ddays, %d:%d:%d\n",a,b,c,d)}' /proc/uptime ) 150 | kern=$( uname -r ) 151 | ipv6=$( wget -qO- -t1 -T2 ipv6.icanhazip.com ) 152 | IP=$(curl -s myip.ipip.net | awk -F ' ' '{print $2}' | awk -F ':' '{print $2}') 153 | IPaddr=$(curl -s myip.ipip.net | awk -F ':' '{print $3}') 154 | if [ "$IP" == "" ]; then 155 | IP=$(curl -s ip.cn | awk -F ' ' '{print $2}' | awk -F ':' '{print $2}') 156 | IPaddr=$(curl -s ip.cn | awk -F ':' '{print $3}') 157 | fi 158 | backtime=`date +%Y%m%d` 159 | logfilename="test91yun.log" 160 | #查看虚拟化技术: 161 | yum install -y gcc gcc-c++ gdb 162 | wget http://people.redhat.com/~rjones/virt-what/files/virt-what-1.12.tar.gz 163 | tar zxvf virt-what-1.12.tar.gz 164 | cd virt-what-1.12/ 165 | ./configure 166 | make && make install 167 | vm=`virt-what` 168 | cd .. 169 | rm -rf virt-what* 170 | 171 | 172 | yum install -y mtr || { apt-get update;apt-get install -y mtr; } || { echo "mtr没安装成功,程序暂停";exit 1; } 173 | yum -y install wget || { apt-get update;apt-get install -y wget; } || { echo "wget没安装成功,程序暂停";exit 1; } 174 | yum -y install curl || { apt-get update;apt-get install -y curl; } || { echo "curl自动安装失败,请自行手动安装curl后再重新开始";exit 1; } 175 | 176 | #覆盖已有文件 177 | echo "====开始记录测试信息====" > $logfilename 178 | 179 | #把系统信息写入日志文件 180 | echo "===系统基本信息===" | tee -a $logfilename 181 | echo "CPU:$cname" | tee -a $logfilename 182 | echo "cores:$cores" | tee -a $logfilename 183 | echo "freq:$freq" | tee -a $logfilename 184 | echo "ram:$tram" | tee -a $logfilename 185 | echo "swap:$swap" | tee -a $logfilename 186 | echo "uptime:$up" | tee -a $logfilename 187 | echo "OS:$opsy" | tee -a $logfilename 188 | echo "Arch:$arch ($lbit Bit)" | tee -a $logfilename 189 | echo "Kernel:$kern" | tee -a $logfilename 190 | echo "ip:$IP" | tee -a $logfilename 191 | echo "ipaddr:$IPaddr" | tee -a $logfilename 192 | echo "host:$hostp" | tee -a $logfilename 193 | echo "uptime:$up" | tee -a $logfilename 194 | echo "vm:$vm" | tee -a $logfilename 195 | echo "he:$he" | tee -a $logfilename 196 | echo -e "\n\n" | tee -a $logfilename 197 | 198 | 199 | 200 | #开始测试带宽 201 | echo "===开始测试带宽===" | tee -a $logfilename 202 | wget -O speedtest-cli https://raw.githubusercontent.com/91yun/speedtest-cli/master/speedtest_cli.py 1>/dev/null 2>&1 203 | python speedtest-cli --share | tee -a $logfilename 204 | echo -e "===带宽测试结束==\n\n" | tee -a $logfilename 205 | rm -rf speedtest-cli 206 | 207 | #开始测试下载速度和IO性能 208 | echo "===开始测试下载速度和IO性能===" | tee -a $logfilename 209 | next 210 | 211 | if [ -e '/usr/bin/wget' ]; then 212 | echo -e "Node Name\t\t\tIPv4 address\t\tDownload Speed" | tee -a $logfilename 213 | echo "===star ipv4 download===" >> $logfilename 214 | speed && next 215 | echo -e "===end ipv4 download===\n\n" >> $logfilename 216 | 217 | # if [[ "$ipv6" != "" ]]; then 218 | # echo -e "Node Name\t\t\tIPv6 address\t\tDownload Speed" | tee -a $logfilename 219 | # echo "===star ipv6 download===" >> $logfilename 220 | # speed_v6 && next 221 | # fi 222 | # echo -e "===end ipv6 download===\n\n" >> $logfilename 223 | else 224 | echo "Error: wget command not found. You must be install wget command at first." 225 | exit 1 226 | fi 227 | 228 | io1=$( io_test ) 229 | io2=$( io_test ) 230 | io3=$( io_test ) 231 | ioraw1=$( echo $io1 | awk 'NR==1 {print $1}' ) 232 | [ "`echo $io1 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw1=$( awk 'BEGIN{print '$ioraw1' * 1024}' ) 233 | ioraw2=$( echo $io2 | awk 'NR==1 {print $1}' ) 234 | [ "`echo $io2 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw2=$( awk 'BEGIN{print '$ioraw2' * 1024}' ) 235 | ioraw3=$( echo $io3 | awk 'NR==1 {print $1}' ) 236 | [ "`echo $io3 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw3=$( awk 'BEGIN{print '$ioraw3' * 1024}' ) 237 | ioall=$( awk 'BEGIN{print '$ioraw1' + '$ioraw2' + '$ioraw3'}' ) 238 | ioavg=$( awk 'BEGIN{print '$ioall'/3}' ) 239 | echo "I/O speed(1st run) : $io1" | tee -a $logfilename 240 | echo "I/O speed(2nd run) : $io2" | tee -a $logfilename 241 | echo "I/O speed(3rd run) : $io3" | tee -a $logfilename 242 | echo "Average I/O: $ioavg MB/s" | tee -a $logfilename 243 | echo "" 244 | 245 | #开始测试来的路由 246 | mtrgo "http://www.ipip.net/traceroute.php?as=1&a=get&n=1&id=9&ip=$IP" "广州电信(超级信息港)" 247 | mtrgo "http://www.ipip.net/traceroute.php?as=1&a=get&n=1&id=5&ip=$IP" "上海电信" 248 | mtrgo "http://www.ipip.net/traceroute.php?as=1&a=get&n=1&id=12&ip=$IP" "重庆联通" 249 | mtrgo "http://www.ipip.net/traceroute.php?as=1&a=get&n=1&id=2&ip=$IP" "天津移动" 250 | 251 | #开始测试回程路由 252 | mtrback "58.63.244.254" "广州电信(超级信息港)" 253 | mtrback "222.73.199.97" "上海电信" 254 | mtrback "113.207.32.65" "重庆联通" 255 | mtrback "211.103.87.9" "天津移动" 256 | 257 | #开始进行PING测试 258 | pingtest $IP 259 | 260 | #开始测试跳板ping 261 | echo "===开始测试跳板ping===" >> $logfilename 262 | testping speedtest.tokyo.linode.com Linode日本 263 | testping hnd-jp-ping.vultr.com Vultr日本 264 | testping 192.157.214.6 Budgetvm洛杉矶 265 | testping downloadtest.kdatacenter.com kdatacenter韩国SK 266 | testping 210.92.18.1 星光韩国KT 267 | echo "===跳板ping测试结束===" >> $logfilename 268 | 269 | #上传文件 270 | resultstr=$(curl -s -T $logfilename "http://test.91yun.org/logfileupload.php") 271 | echo -e $resultstr | tee -a $logfilename 272 | 273 | -------------------------------------------------------------------------------- /ubutun_kernel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | version=`uname -r` 4 | echo -n "Please input what version you want(such as 3.13.0-24-genric):" 5 | read new_version 6 | echo "Now your server kernel version is ($version),and you are going to installing ($new_version) " 7 | read -s -n1 -p "Please press any key to continue....." 8 | aptitude install linux-image-$new_version linux-image-extra-$new_version linux-headers-$new_version -y 9 | #apt-get remove linux-image-$version linux-headers-$version -y 10 | update-grub 11 | echo "You are going to reboot now" 12 | reboot 13 | -------------------------------------------------------------------------------- /vm_check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 3 | export PATH 4 | yum install -y gcc gcc-c++ gdb 5 | wget http://people.redhat.com/~rjones/virt-what/files/virt-what-1.12.tar.gz 6 | tar zxvf virt-what-1.12.tar.gz 7 | cd virt-what-1.12/ 8 | ./configure 9 | make && make install 10 | virt-what 11 | --------------------------------------------------------------------------------