├── README.md ├── TomcatLogAnalysis ├── directory ├── emaillist ├── ignoreclass ├── scphost └── tomcatloganalysis.sh ├── auto.sh ├── autoops ├── README.md └── remove_nginx_cluster_to_publish.sh ├── autossh.sh ├── carp_stat.sh ├── check.sh ├── create_branch.sh ├── gethost.sh ├── gm.sh ├── gmscp.sh ├── input ├── jenkins └── jenkins.shell ├── mailsend ├── em.list ├── list ├── listFuntion.sh ├── mail.sh ├── u2g.list ├── u2g.list~ ├── useradd.sh └── useradd.sh~ ├── mysqlbackup ├── backupmysql.sh ├── backupmysql.sh.old ├── bkmysql-2015-8-27.sh ├── bkmysql.sh ├── bkremoutemysql.sh ├── mongo.sh ├── mysql.sh ├── rsmysql.sh └── syncmysql.sh ├── mytijian ├── PreExecution.bat ├── PreExecution.sh ├── configwget.sh ├── install.sh ├── make.sh ├── makeinstall.sh ├── makezip.sh ├── manage.sh ├── monitor.sh ├── uninstall.sh └── upgrade.sh ├── performance └── linux_centos6_base_web.sh ├── pymm.py ├── rsync_inotify ├── rsinotify-gh.sh └── rsyncd │ ├── rs.sh │ └── startrs.sh ├── spilt.sh ├── ver.sh ├── wikijenkins.sh ├── xtrabackupnew └── innobackupex.sh └── zonecreate ├── createzone.sh ├── createzone.sh.bak ├── host ├── uniq2host.sh ├── zone2name ├── zone2name.mutiple └── zone2name.singlebinjiang /README.md: -------------------------------------------------------------------------------- 1 | autossh.sh 免交互登录脚本 2 | 3 | autossh.sh 免交互登录脚本 4 | 5 | carp_stat.sh 系统状态检查 6 | 7 | check.sh 在互信的环境中批量远程命令执行 8 | 9 | gethost.sh 主机处理 10 | 11 | gmscp.sh 批量文件拷贝 12 | 13 | gm.sh 批量远程命令执行 14 | 15 | spilt.sh 分割字符串 16 | 17 | create_branch.sh 分支创建脚 18 | 19 | bkmysql 数据库备份的一些脚本 20 | 21 | mailsend 批量发送邮件的脚 22 | 23 | rsync_inotify rsync自动同步到脚本 24 | -------------------------------------------------------------------------------- /TomcatLogAnalysis/directory: -------------------------------------------------------------------------------- 1 | /opt/apache-tomcat-8.0.26/logs/mediatorlog/mediator.error.log 2 | /opt/apache-tomcat-8.0.26/logs/crmlog/crm.error.log 3 | /opt/apache-tomcat-8.0.26/logs/mytijianlog/mytijian.error.log 4 | /opt/apache-tomcat-8.0.26/logs/servicelog/service.error.log 5 | /opt/apache-tomcat-8.0.26/logs/joblog/job.error.log 6 | -------------------------------------------------------------------------------- /TomcatLogAnalysis/emaillist: -------------------------------------------------------------------------------- 1 | liujunming@mytijian.com 2 | twu@mytijian.com 3 | -------------------------------------------------------------------------------- /TomcatLogAnalysis/ignoreclass: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YunKillerE/linux_system_shell/ecd5b23f3f4fe0b86000a939ebefa7b1c203da0a/TomcatLogAnalysis/ignoreclass -------------------------------------------------------------------------------- /TomcatLogAnalysis/scphost: -------------------------------------------------------------------------------- 1 | prod2 2 | -------------------------------------------------------------------------------- /TomcatLogAnalysis/tomcatloganalysis.sh: -------------------------------------------------------------------------------- 1 | set +x 2 | #!/bin/bash 3 | #****************************************************************# 4 | # ScriptName: tomcatloganalysis.sh 5 | #***************************************************************# 6 | spwd="/opt/logtmp" 7 | 8 | ignoreclass="$spwd/ignoreclass" 9 | mailcontent="$spwd/mailcontent" 10 | emaillist="$spwd/emaillist" 11 | scphost="$spwd/scphost" 12 | directory="$spwd/directory" 13 | workerror="$spwd/workerror" 14 | uniqclass="$spwd/uniqclass" 15 | allclass="$spwd/allclass" 16 | mailsend="$spwd/mailsend" 17 | 18 | #创建目录 19 | Mkdir_Spwd() { 20 | echo Mkdir_Spwd 21 | if [ -d $spwd ];then 22 | : 23 | else 24 | mkdir $spwd 25 | fi 26 | if [ -f $ignoreclass ];then 27 | : 28 | else 29 | touch $ignoreclass 30 | fi 31 | if [ -f $emaillist ];then 32 | : 33 | else 34 | echo "pls create emaillist" 35 | exit 1 36 | fi 37 | } 38 | 39 | #生成邮件内容 40 | Create_Content() { 41 | if [ -s $1 ];then 42 | ActualRows=`sed -n '$=' $1` 43 | echo $ActualRows > $rowsfile 44 | echo "ActualRows=$ActualRows" 45 | if [ $ActualRows = $rows ];then 46 | : 47 | elif [ $ActualRows > $rows ];then 48 | sed -n "$rows,$ActualRows p" $1 |grep ERROR > $workerror 49 | seqnum=`cat $workerror |wc -l` 50 | Intercept_String $seqnum 51 | #Add_Server_Name 52 | else #[ $ActualRows < $rows ];then 53 | : 54 | #else 55 | # rows=1 56 | # echo "rows=$rows" 57 | # sed -n "$rows,$ActualRows p" $1 |grep ERROR > $workerror 58 | # #let seqnum=$ActualRows-$rows+1 59 | # seqnum=`cat $workerror |wc -l` 60 | # echo "seqnum=$seqnum" 61 | # Intercept_String $seqnum 62 | # #Add_Server_Name 63 | fi 64 | else 65 | : 66 | fi 67 | #Add_Server_Name $mailcontent 68 | echo "" >> $mailcontent 69 | } 70 | 71 | #处理字符串类 72 | Intercept_String() { 73 | #1 74 | for i in `seq $1` 75 | do 76 | echo "\$1==$1" 77 | echo "i==$i" 78 | #classname=`sed -n "$i"p $workerror |awk '{print $5}' |cut -d'(' -f2 |cut -d':' -f1` 79 | #echo "classname=$classname" 80 | rowsclass=`sed -n "$i"p $workerror |awk '{print $5}'` 81 | classname=`echo $rowsclass | cut -d'(' -f2 |cut -d':' -f1` 82 | echo "rowsclass=$rowsclass" 83 | 84 | if [ -n $classname ];then 85 | if grep "$classname" $ignoreclass ;then 86 | : 87 | else 88 | echo "$rowsclass" >>$allclass 89 | fi 90 | else 91 | : 92 | fi 93 | done 94 | 95 | sed -i '/^$/d' $allclass 96 | cat $allclass |sort |uniq > $uniqclass 97 | sed -i '/^$/d' $uniqclass 98 | for i in `cat $uniqclass` 99 | do 100 | #a=`echo $i |cut -d'!' -f1` 101 | #echo "a=$a" 102 | b=`echo $i |cut -d'(' -f2 |cut -d':' -f1` 103 | echo "b=$b" 104 | frequency=`grep "$b" $allclass |wc -l` 105 | echo " $frequency $i" >>$mailcontent 106 | unset frequency 107 | done 108 | } 109 | 110 | Send_Email() { 111 | if [ -s $emaillist -a -s $mailsend ];then 112 | for i in `cat $emaillist` 113 | do 114 | cat $1 |mail -s "每小时错误汇总-`date +%Y-%m-%d-%H`" $i 115 | done 116 | else 117 | echo "no error!!! or no email!!! or no mailcontent!!!" 118 | fi 119 | } 120 | 121 | Scp_Mailcontent() { 122 | if [ -s $scphost ];then 123 | for i in `cat $scphost` 124 | do 125 | scp $i:$mailsend $spwd/$i.mailsend 126 | done 127 | else 128 | echo "scphost not exist!!" 129 | fi 130 | 131 | } 132 | 133 | Add_Server_Name() { 134 | if grep `hostname` $1;then 135 | : 136 | else 137 | sed -i "1 i\服务器名称:`hostname` 日志文件名称:$2" $1 138 | fi 139 | } 140 | 141 | Start_Log_Analysis() { 142 | # for i in `cat $directory` 143 | # do 144 | echo Start_Log_Analysis 145 | #Clear_File 146 | Mkdir_Spwd 147 | Create_Content $1 148 | #Send_Email 149 | # done 150 | } 151 | 152 | Create_Args_To_Start() { 153 | for i in `cat $directory` 154 | do 155 | echo "===================$i===========================" 156 | Clear_File start 157 | filename=`echo $i |cut -d'/' -f6` # 3:00 of every day need to set 0 158 | if [ -s $spwd/$filename ];then 159 | : 160 | else 161 | echo 1 > $spwd/$filename 162 | fi 163 | rowsfile="$spwd/$filename" 164 | rows=`cat $rowsfile` 165 | echo "rows=$rows" 166 | Start_Log_Analysis $i 167 | cat $mailcontent > $spwd/$filename.mailcontent 168 | XX_File $spwd/$filename.mailcontent 169 | Add_Server_Name "$spwd/$filename.mailcontent" "$filename" 170 | done 171 | } 172 | 173 | XX_File() { 174 | sed -i '/^$/d' $1 175 | cat $1 |sort |uniq > $spwd/xxtmp 176 | cat $spwd/xxtmp > $1 177 | rm -rf $spwd/xxtmp 178 | } 179 | 180 | #清理文件 181 | Clear_File() { 182 | if [ X$1 = Xrm ];then 183 | echo Clear_File 184 | rm -rf $uniqclass 185 | rm -rf $allclass 186 | rm -rf $workerror 187 | rm -rf $mailcontent 188 | rm -rf $spwd/*.mailcontent 189 | rm -rf $spwd/*mailsend 190 | 191 | touch $uniqclass 192 | touch $allclass 193 | touch $workerror 194 | touch $mailcontent 195 | elif [ X$1 = Xstart ];then 196 | rm -rf $uniqclass 197 | rm -rf $allclass 198 | rm -rf $workerror 199 | rm -rf $mailcontent 200 | 201 | touch $uniqclass 202 | touch $allclass 203 | touch $workerror 204 | touch $mailcontent 205 | elif [ X$1 = Xdelete ];then 206 | for i in `ls $spwd |egrep ^[0-9]*[1-9][0-9]*` 207 | do 208 | rm -rf $spwd/$i 209 | done 210 | else 211 | rm -rf $uniqclass 212 | rm -rf $allclass 213 | rm -rf $workerror 214 | rm -rf $mailcontent 215 | rm -rf $spwd/*.mailcontent 216 | rm -rf $spwd/*mailsend 217 | fi 218 | } 219 | 220 | Send_Content_Mail() { 221 | cat $spwd/*.mailcontent > $mailsend 222 | Scp_Mailcontent //发邮件的那台服务器才需要执行此函数 223 | cat $spwd/*.mailsend >> $mailsend 224 | #Add_Server_Name 225 | Send_Email $mailsend 226 | } 227 | 228 | #Clear_File rm 229 | Create_Args_To_Start 230 | Send_Content_Mail 231 | 232 | Clear_File 233 | Clear_File delete 234 | set -x 235 | -------------------------------------------------------------------------------- /auto.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: function.sh 4 | # Author: $liujmsunits@hotmail.com 5 | # Create Date: 2015-05-06 22:15 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-06-02 19:33 8 | # Function: 9 | #***************************************************************# 10 | pass="roottoor" 11 | auto_ssh_copy_id(){ 12 | expect -c "set timeout 10; 13 | spawn ssh-copy-id $1; 14 | expect *assword:*; 15 | send -- $pass\r; 16 | interact;"; 17 | } 18 | #for i in `cat $1` 19 | #do 20 | # auto_ssh_copy_id $i 21 | #done 22 | 23 | 24 | auto_login_ssh(){ 25 | expect -c "set timeout -1; 26 | spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3}; 27 | expect *assword:*; 28 | send -- $pass\r; 29 | interact;"; 30 | } 31 | #auto_login_ssh client "ifconfig eth0 && cat /root/.ssh/id_rsa" 32 | 33 | 34 | auto_ssh_copy_id () { 35 | expect -c "set timeout -1; 36 | spawn ssh-copy-id $1; 37 | expect { 38 | *(yes/no)* {send -- yes\r;exp_continue;} 39 | *assword:* {send -- $pass\r;exp_continue;} 40 | eof {exit 0;} 41 | }"; 42 | } 43 | for i in `cat $1` 44 | do 45 | auto_ssh_copy_id $i 46 | done 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /autoops/README.md: -------------------------------------------------------------------------------- 1 | linux平台自动化部署的脚本,主要用于web集群架构nginx+keepalived 2 | 3 | 脚本编写要点: 4 | 1,mvn编译是否通过,否则exit 1退出 5 | 2,通过后将代码提交到sonar进行静态代码测试 6 | 3,接着运行junit测试,形成测试报表,通过插件自动生成测试代码 7 | 4,对target目录下面的更目录进行打包并计算md5值,并上传到console服务器上,供服务器上脚本调用,此时控制权由jenkins转交给服务器上的脚本。 8 | 5,发布脚本对比md5值,如果符合就开始部署,否则退出 9 | 6,连接nginx负载均衡服务器将待部署设备移除集群,标记为down,然后重启nginx,并进行测试是否成功,方法可以采取变更nginx.conf(多个)配置文件的方法,然后reload 10 | 7,列举待部署服务器上的目录,记录上一个版本目录名称,并将将版本名称写入到version文件中,方便回滚 11 | 8,删除软连接,并以当前时间戳创建新目录,将代码解压到此目录,创建新软链接 12 | 9,重启jetty,输出重启log日志 13 | 10,判断是否重启成功,通过curl访问来判断,如果有问题则发送邮件 14 | 11,将机器加入集群(也可以在测试人员测试完后加入) 15 | -------------------------------------------------------------------------------- /autoops/remove_nginx_cluster_to_publish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: remove_nginx_cluster_to_publish.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-11-19 13:36 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-11-19 13:36 8 | # Function: 9 | #***************************************************************# 10 | set -x 11 | #===================================variables=================== 12 | tarpath="/home/goujia/tar" 13 | tarfile="$tarpath/$(date +%Y%d).tgz" 14 | allhost=(test1 web1) 15 | decidenginxconfhost="test1" 16 | prehost="web1" 17 | nginxpath="/home/goujia/project/tengine" 18 | nginxconf="$nginxpath/conf/nginx.conf" 19 | alonehost="web1_host" 20 | productionhost="web2_host" 21 | md5file="/home/goujia/md5" 22 | 23 | #================================function===================== 24 | #ssh login 25 | function ssh_to_host(){ 26 | ssh $1 "$2" 27 | } 28 | 29 | function for_each_allhost(){ 30 | for i in ${allhost[@]} 31 | do 32 | ssh $i "$1" 33 | done 34 | } 35 | 36 | function if_grep_else(){ 37 | if grep "$1" $nginxconf 38 | then 39 | : 40 | else 41 | echo "the String $1 dosn't exist in the $nginxconf" 42 | exit 1; 43 | fi 44 | } 45 | 46 | function decide_failure_or_success(){ 47 | if [ X$1 == X0 ] 48 | then 49 | : 50 | else 51 | $2 52 | exit 1; 53 | fi 54 | } 55 | 56 | function modify_nginx_conf(){ 57 | #遍历集群,更改配置文件 58 | for_each_allhost "sed -i s/$productionhost/$alonehost/g $nginxconf" 59 | scp $decidenginxconfhost:$nginxconf /tmp/$decidenginxconfhost.nginx.conf 60 | #检测重启本机nginx 61 | sudo $nginxpath/sbin/nginx -t 62 | decide_failure_or_success $? "echo '$nginxpath/sbin/nginx -s reload'" 63 | sudo $nginxpath/sbin/nginx -s reload 64 | #比对远程nginx文件与本机的是否一致及是否包含被更改的内容 65 | #diff /tmp/$decidenginxconfhost.nginx.conf $nginxconf 66 | decide_failure_or_success $? "echo 'diff nginx conf'" 67 | if_grep_else $alonehost 68 | #重启集群中的所有nginx,移除待部署机器 69 | #for_each_allhost "sudo $nginxpath/sbin/nginx -s reload" 70 | #处理临时配置文件 71 | mv /tmp/$decidenginxconfhost.nginx.conf /tmp/`date +%Y%d%m%d%S`.nginx.conf 72 | find /tmp/ -name "*.nginx.conf" -type f -mtime +5|xargs rm -rf 73 | } 74 | 75 | function md5_decide(){ 76 | premd5=`md5sum $tarfile |awk '{print $1}'` 77 | oldmd5=`cat $md5file` 78 | if [ X$premd5 == X$oldmd5 ] 79 | then 80 | : 81 | else 82 | echo "the project tarfile md5 different." 83 | exit 1; 84 | fi 85 | } 86 | 87 | function main_pre(){ 88 | #比对md5值 89 | md5_decide 90 | 91 | #配置nginx集群,移除待部署集群 92 | modify_nginx_conf 93 | } 94 | 95 | #===================begin project publishing=================== 96 | projectpath="/home/goujia/project/web/www" 97 | publishshell="new.sh" 98 | 99 | function project_publish(){ 100 | logname=`date +%Y%m%d%H%M%S` 101 | source /etc/profile 102 | ssh_to_host $prehost "source $projectpath/$publishshell > /tmp/log 2>&1" 103 | 104 | scp $prehost:/tmp/log /tmp/"$logname".log 105 | sleep 5 106 | tail -n 100 /tmp/"$logname".log 107 | echo "success!" 108 | } 109 | 110 | function last_version(){ 111 | lastversion=`ls -al $projectpath/deploy |awk '{print $NF}'` 112 | echo $lastversion > /home/goujia/.lastversion 113 | } 114 | 115 | function current_version(){ 116 | currentversion=`date +%Y%m%d%H%M%S` 117 | echo $currentversion > /home/goujia/.currentversion 118 | mkdir $projectpath/$currentversion 119 | tar -zxvf $tarfile -C $projectpath/$currentversion 120 | rm -rf $projectpath/deploy 121 | ln -s $projectpath/$currentversion $projectpath/deploy 122 | } 123 | 124 | function main_project(){ 125 | #记录上一个版本号 126 | last_version 127 | #创建新版本目录,并解压压缩包到新目录 128 | current_version 129 | #执行部署脚本 130 | project_publish 131 | } 132 | 133 | 134 | main_pre 135 | main_project 136 | 137 | set +x 138 | -------------------------------------------------------------------------------- /autossh.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect -f 2 | #****************************************************************# 3 | # ScriptName: autossh.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-05-11 08:22 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-11 08:30 8 | # Function: 9 | #***************************************************************# 10 | set ip [lindex $argv 1] 11 | set password [lindex $argv 0] 12 | set timeout 20 13 | spawn ssh root@$ip 14 | expect { 15 | "*yes/no" { send "yse\r"; exp_continue } 16 | "*assword:" {send "$password\r" } 17 | } 18 | interact 19 | #autossh.sh password ip 20 | 21 | -------------------------------------------------------------------------------- /carp_stat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | 4 | # Creator: tiexin 2007-06-04 v1.0 5 | # Update: 2008-04-02 v1.1 ; Add obj/desc/srvreq 6 | 7 | group=$(/root/bin/gethost.sh $1) 8 | 9 | msg () { 10 | cat << EOF 11 | Usage: $0 [hostname] [statistics information] 12 | Statistics Information: 13 | load Display systemn load in 5 minutes 14 | traf Display the last 10 minutes : Network Traffic/sec 15 | EOF 16 | } 17 | 18 | 19 | case $2 in 20 | load) 21 | channel="ssh -o ConnectTimeout=1" 22 | cmd="w | grep load | awk '{print \$(NF-2)}' |awk -F "," '{print \$1}'" 23 | ;; 24 | traf) 25 | channel="ssh -o ConnectTimeout=1" 26 | cmd="env -i sar -n DEV | grep -E 'bond0|eth0' |grep -v Av | tail -2 | head -1 |awk '{printf \"%s %0.2fMbps\n\",\"Traffic:\",\$6/1000000*8}'" 27 | ;; 28 | *) 29 | msg 30 | exit 0 31 | ;; 32 | esac 33 | 34 | for server in $group; do 35 | if [ $2 == "obj" ];then 36 | echo -e "\033[32;1m========================= $server ========================\033[0m"; 37 | $channel $server "$cmd"| awk '{bytes+=$1}END{print bytes}' 38 | else 39 | echo -e "\033[32;1m========================= $server ========================\033[0m"; 40 | $channel $server "$cmd" 41 | fi 42 | done 43 | -------------------------------------------------------------------------------- /check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: check.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-5-20 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-20 19:51 8 | # Function: 9 | #***************************************************************# 10 | 11 | if [ $# -lt 2 ]; then 12 | echo "Usage: $0 hostname 'command1 && command2 .... '"; 13 | exit 1; 14 | else 15 | for i in `cat $1` 16 | do 17 | # echo 18 | for DEST_HOST in $i ; do 19 | echo -e "\033[32;1m=========================== $DEST_HOST ===========================\033[0m"; 20 | ssh -o ConnectTimeout=5 $DEST_HOST $2 21 | # PW="r00tadmin" 22 | # auto_login_ssh $PW $DEST_HOST $cmd 23 | done 24 | done 25 | fi 26 | -------------------------------------------------------------------------------- /create_branch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: create_branch.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-10-25 18:15 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-10-25 18:15 8 | # Function: 9 | #***************************************************************# 10 | #当前脚本用法 11 | function msg(){ 12 | cat << EOF 13 | Usage: $0 sourcebranch newbranch1 [newbranch2 newbranch3 ....] 14 | sourcebranch 基于哪个分支创建 15 | newbranch1 新分支名称,需要创建几个就跟几个参数 16 | EOF 17 | } 18 | 19 | #判断输入参数是否符合要求,必须大于2,至少创建一个分支吧,要不然你执行这个脚本干嘛,吃饱了没事干啊 20 | if [ $# -lt 2 ] 21 | then 22 | msg 23 | echo -e "\033[41;33;1m 至少提供两个参数,至少创建一个分支吧,要不然你执行这个脚本干嘛,吃饱了没事干啊 \033[0m" 24 | exit 1; 25 | else 26 | : 27 | fi 28 | 29 | #判断当前分支是否有未提交内容,以便切换分支 30 | function decide_git_status(){ 31 | git_ignore_delete_cachefile 32 | statuscount=`git status -s |wc -l` 33 | if [ $statuscount == 0 ] 34 | then 35 | : 36 | else 37 | echo -e "\033[41;33;1m 当前分支存在未提交内容,请提交或者是git reset还原 \033[0m" 38 | exit 1; 39 | fi 40 | } 41 | 42 | function swap(){ 43 | temp=$1 44 | $1=$2 45 | $2=$temp 46 | } 47 | 48 | #判断数组中是否有相同元素 49 | function decide_array_same(){ 50 | for ((i=0;i<=${#array_branch[@]};i++)) 51 | do 52 | for ((j="i+1";j<=${#array_branch[@]};j++)) 53 | do 54 | #echo "${array_branch[$i]} ${array_branch[$j]}" 55 | if [ X"${array_branch[$i]}" = X"${array_branch[$j]}" ] 56 | then 57 | echo -e "\033[41;33;1m 提供了相同的分支名称,无法创建,你是猪吗? \033[0m" 58 | exit 1; 59 | else 60 | : 61 | fi 62 | done 63 | done 64 | 65 | } 66 | 67 | #判断字符串是否为空 ddd 68 | function decide_string_is_empty(){ 69 | if [ -z $1 ] 70 | then 71 | : 72 | else 73 | $1 74 | fi 75 | } 76 | 77 | #判断上一个命令是否执行成功 78 | function success_or_fail(){ 79 | if [ $? == 0 ] 80 | then 81 | : 82 | else 83 | echo -e "\033[41;33;1m$1\033[m" 84 | echo "" 85 | decide_string_is_empty $2 86 | decide_string_is_empty $3 87 | exit 1; 88 | fi 89 | } 90 | 91 | #判断当前是否在$1分支,如果不在,则切换过去 92 | function decide_which_branch(){ 93 | current_branch=$(git branch |grep ^* |awk '{print $NF}') 94 | #echo $current_branch 95 | if [ X"$current_branch" == X"$1" ] 96 | then 97 | decide_git_status 98 | echo -e "\033[41;33;1m开始更新当前分支到最新状态................................\033[m" 99 | git pull origin $1 100 | echo "" 101 | success_or_fail "更新分支失败,请检查原因" 102 | else 103 | echo -e "\033[41;33;1m确定当前分支是否有未提交的内容..............................\033[m" 104 | echo "" 105 | decide_git_status 106 | echo -e "\033[41;33;1m切换到指定分支..............................................\033[m" 107 | echo "" 108 | git checkout $1 109 | success_or_fail "切换分支失败,请检查原因" 110 | fi 111 | } 112 | 113 | #判断当前是否在git根目录以及git的配置是否正常 114 | function decide_git_config(){ 115 | userconfig=$(git config --list |egrep "user.name|user.email" |wc -l) 116 | if [ X"$userconfig" == X2 ] 117 | then 118 | : 119 | else 120 | echo -e "\033[41;33;1m 你是猪吗?user.name和user.email都不配置,你提交代码后谁知道你是谁啊 \033[0m" 121 | echo "配置方法如下:" 122 | echo "" 123 | echo " git config --global user.name 'Your Name Comes Here' " 124 | echo " git config --global user.email you@yourdomain.example.com" 125 | echo "" 126 | exit 1; 127 | fi 128 | 129 | if [ -d ".git" ] 130 | then 131 | : 132 | else 133 | echo -e "\033[41;33;1m 当前都不是git根目录,创建毛线的分支啊,切换到git根目录执行本脚本,听话啊,操作规范点,不然女的不然打屁股,男的跳楼去 \033[0m" 134 | exit 1; 135 | fi 136 | 137 | if [ -d ".git" -a -e ".git/config" -a -s ".git/config" ] 138 | then 139 | : 140 | else 141 | echo -e "\033[41;33;1m .git/config文件都不存在或者被清空了,怎么更新分支啊?怎么提交?手动输入仓库地址吗?累不累啊? \033[0m" 142 | echo "也就是说当前代码目录git配置有问题,重新克隆仓库代码就好了,看我多聪明,哈哈哈哈哈哈哈" 143 | exit 1; 144 | fi 145 | } 146 | 147 | #遍历数组创建分支 148 | function create_and_push_branch(){ 149 | echo -e "\033[41;33;1m基于分支: [${array_branch[0]}] 创建新分支:[${array_branch[@]:1:100}]\033[0m" 150 | echo "" 151 | yes_or_no 152 | echo "" 153 | echo -e "\033[41;33;1m开始创建分支..............................................\033[m" 154 | echo "" 155 | for ((i=1;i<${#array_branch[@]};i++)) 156 | do 157 | #echo ${array_branch[i]} 158 | git branch ${array_branch[i]} 159 | success_or_fail "分支创建失败,请检查原因" 160 | echo -e "\033[41;33;1m${array_branch[i]}分支创建成功........................................\033[m" 161 | echo "" 162 | echo -e "\033[41;33;1m${array_branch[i]}开始提交分支........................................\033[m" 163 | git push origin ${array_branch[i]} 164 | echo "" 165 | success_or_fail "分支提交失败,请查看原因" "echo -e '\033[41;33;1m 开始删除未提交的分支....................\033[m'" "git branch -d ${array_branch[i]}" 166 | echo -e "\033[41;33;1m${array_branch[i]}分支提交成功........................................\033[m" 167 | echo "" 168 | done 169 | echo -e "\033[41;34;1m恭喜恭喜!成功创建并提交如下分支: 170 | ================================================================================================================================== 171 | ${array_branch[@]:1:100} 172 | ==================================================================================================================================\033[m" 173 | echo "" 174 | } 175 | 176 | #显示当前分支情况 177 | function print_branch_detail(){ 178 | echo -e "\033[41;33;1m$1........................................\033[m" 179 | echo "" 180 | array_b=(`git branch | awk '{print $NF}'`) 181 | #echo -e "\033[41;33;1m${array_b[*]}\033[m" 182 | echo -e "${array_b[*]}" 183 | echo "" 184 | } 185 | 186 | #忽略本脚本及.gitignore 187 | function git_ignore_delete_cachefile(){ 188 | echo -e "\033[41;33;1m开始创建忽略提交的文件....................................\033[m" 189 | echo "" 190 | spath=`pwd` 191 | echo "$0" > $spath/.gitignore 192 | echo ".gitignore" >> $spath/.gitignore 193 | rm -rf $spath/*~ 194 | rm -rf $spath/.*~ 195 | } 196 | 197 | #判断输入的分支是否已经存在,待写,思路是比较两个数组元素,将相同的元素打印出来,嵌套循环 198 | function decide_input_branch_is_exist(){ 199 | unset array_b 200 | array_b=(`git branch -a |awk '{print $NF}' | awk -F'/' '{print $NF}' |sort -n |uniq`) 201 | num=0 202 | resoult_b=() 203 | for ((i=1;i<${#array_branch[@]};i++)) 204 | do 205 | #num=0 206 | #resoult_b=() 207 | for ((j=0;j<${#array_b[@]};j++)) 208 | do 209 | if [ X${array_branch[$i]} == X${array_b[$j]} ] 210 | then 211 | resoult_b[$num]=${array_branch[$i]} 212 | echo ${resoult_b[$num]} 213 | let num=$num+1 214 | else 215 | : 216 | fi 217 | done 218 | done 219 | if [ X${#resoult_b[@]} == X0 ] 220 | then 221 | : 222 | else 223 | echo -e "\033[41;33;1m如下分支名称:${resoult_b[*]} 已存在,请重新确定分支名,或者删除已存在的分支\033[m" 224 | exit 1; 225 | fi 226 | } 227 | 228 | #更新当前主机时间 229 | function update_time(){ 230 | echo -e "\033[41;33;1m开始更新系统时间..........................................\033[m" 231 | ntpdate 0.centos.pool.ntp.org 232 | echo "" 233 | success_or_fail "网络连接不成功,请查看网络情况,或者联系云尘" 234 | } 235 | 236 | function y_or_n(){ 237 | if [ X$1 == XY -o X$1 == Xy -o X$1 == Xyes ] 238 | then 239 | : 240 | elif [ X$1 == XN -o X$1 == Xn -o X$1 == Xno ] 241 | then 242 | exit 1; 243 | else 244 | echo "输入有误,请重新执行,输入y/n" 245 | exit 1; 246 | fi 247 | } 248 | 249 | #是否继续执行脚本 250 | function yes_or_no(){ 251 | echo ${array_branch[*]} 252 | echo "" 253 | #echo -n "是否继续(Y/N):" 254 | read -p "是否继续(Y/N):" yy 255 | y_or_n $yy 256 | } 257 | 258 | #遍历数组,从角标1开始 259 | function array_list_all(){ 260 | count=${#array_branch[@]} 261 | for ((i=1;i<$count;i++)) 262 | do 263 | echo -ne ${$1[i]} 264 | done 265 | } 266 | 267 | #脚本执行入口 268 | function main(){ 269 | #更新当前主机的时间 270 | update_time 271 | #判断数组中是否有相同元素 272 | decide_array_same 273 | #判断输入的分支名称是否已经存在 274 | decide_input_branch_is_exist 275 | #判断当前是否在根代码目录以及git的配置是否有问题 276 | decide_git_config 277 | #创建之前判断当前是否在指定的基于分支上,也就是${array_branch[0]} 278 | decide_which_branch ${array_branch[0]} 279 | #输出当前分支情况 280 | print_branch_detail "创建之前的分支情况" 281 | #开始创建分支 282 | create_and_push_branch 283 | #输出创建之后的分支情况 284 | print_branch_detail "创建之后的分支情况" 285 | } 286 | 287 | #获取所有输入的参数赋值给数组array_branch 288 | array_branch=($*) 289 | #执行main函数 290 | main 291 | 292 | #echo -e "\033[41;33;1m \033[m" 293 | -------------------------------------------------------------------------------- /gethost.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | 4 | 5 | # Group 6 | PWD=`pwd` 7 | 8 | #squidhost="$image" 9 | #homehost="@home@" 10 | #allhome="$homehost $assets $msvchost" 11 | #allhost="$lvs $log $image $homehost $kunlun $proxy $tmd" 12 | allhost="client master" 13 | host1="" 14 | # Single 15 | if [ $# -eq 1 ] 16 | then 17 | POINT=`echo $1 | grep "\." | wc -l` 18 | if [ $POINT -eq 1 ] 19 | then 20 | echo $1 21 | else 22 | eval "single=\$$1" 23 | if [ -n "$single" ] 24 | then 25 | echo $single 26 | else 27 | echo $1 28 | fi 29 | fi 30 | fi 31 | -------------------------------------------------------------------------------- /gm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Function: publish for single app server 4 | # Usage: execmd # eg. execmd listhost detailhost forumhost 'netstat -ant |wc -l' 5 | auto_ssh_copy_id(){ 6 | expect -c "set timeout 60; 7 | spawn ssh-copy-id $1; 8 | expect *assword:*; 9 | send -- $1\r; 10 | interact;"; 11 | } 12 | #auto_ssh_copy_id 192.168.218.199 13 | 14 | auto_login_ssh(){ 15 | expect -c "set timeout 60; 16 | spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3}; 17 | expect *assword:*; 18 | send -- $1\r; 19 | interact;"; 20 | } 21 | #auto_login_ssh root 192.168.218.199 "ls /root && ls /var" 22 | 23 | checkstr() 24 | { 25 | if [ -z `echo ${array[i]} | awk -F"-" '/-/{print $1}'` ];then 26 | eval host="${array[i]}" 27 | DESTHOSTS=`/root/bin/gethost.sh $host` 28 | SERVERS=`echo $DESTHOSTS` 29 | else 30 | host_start=`echo ${array[i]} | awk -F"-" '/-/{print $1}' | sed 's/[a-z]//g'` 31 | host_end=`echo ${array[i]} | awk -F"-" '/-/{print $2}'` 32 | if [ -z `echo $host_start | grep "^0"` ];then 33 | for x in `seq $host_start $host_end` 34 | do 35 | host="$host `echo ${array[i]} | awk -F"-" '/-/{print $1}' | sed 's/[0-9]//g'`$x" 36 | done 37 | else 38 | for x in `seq $host_start $host_end` 39 | do 40 | if [ $x -lt 99 ];then 41 | host="$host `echo ${array[i]} | awk -F"-" '/-/{print $1}' | sed 's/[0-9]//g'`0$x" 42 | else 43 | host="$host `echo ${array[i]} | awk -F"-" '/-/{print $1}' | sed 's/[0-9]//g'`$x" 44 | fi 45 | done 46 | fi 47 | SERVERS=`echo $host` 48 | fi 49 | } 50 | 51 | ############################################################################################################### 52 | 53 | if [ $# -lt 2 ]; then 54 | echo "Usage: $0 hostname1 hostname2 ... hostname_n 'command'"; 55 | exit 1; 56 | else 57 | num=$(($#-1)) 58 | array=($@) 59 | eval cmd="\$$#" 60 | i=0 61 | while [ $i -lt $num ] 62 | do 63 | checkstr 64 | echo -e "\033[31;1m=========================== ${array[$i]} start ===========================\033[0m"; 65 | echo 66 | for DEST_HOST in $SERVERS ; do 67 | echo -e "\033[32;1m=========================== $DEST_HOST ===========================\033[0m"; 68 | # ssh -o ConnectTimeout=5 $DEST_HOST $cmd 69 | PW="r00tadmin" 70 | auto_login_ssh $PW $DEST_HOST $cmd 71 | echo 72 | done 73 | echo -e "\033[31;1m=========================== ${array[$i]} end ===========================\033[0m"; 74 | echo 75 | i=$((i+1)) 76 | unset host 77 | unset SERVERS 78 | done 79 | echo "=== All done!!! ===" 80 | fi 81 | -------------------------------------------------------------------------------- /gmscp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Function: scp config file to each 4 | # Usage: gmscp.sh local_full_path_file remote_full_path_file 5 | # Usage_eg: gmscp.sh homehost /home/admin/cai/conf/httpd.conf /home/admin/cai/conf/httpd.conf 6 | # LastModify: caosir 2005/01/04 09:47:00 7 | # 8 | 9 | if [ $# != 3 ]; then 10 | echo "Usage: $0 'local_full_path_file' 'remote_full_path_file'"; 11 | echo "Sample: gmscp.sh homehost /home/admin/cai/conf/httpd.conf /home/admin/cai/conf/httpd.conf"; 12 | exit 1; 13 | fi 14 | 15 | cd ~/. 16 | eval host='$1' 17 | DESTHOSTS=`/root/bin/gethost.sh $host` 18 | 19 | SERVERS=`echo $DESTHOSTS` 20 | 21 | for DEST_HOST in $SERVERS ; do 22 | echo -e "\033[32;1m========================== $DEST_HOST ==========================\033[0m"; 23 | scp -r -p $2 $DEST_HOST:$3 24 | done 25 | 26 | echo -e "\033[32;1m========================= All done!!! ======================\033[0m"; 27 | -------------------------------------------------------------------------------- /input: -------------------------------------------------------------------------------- 1 | 1122334455667788 2 | 1122334455667788 3 | 1122334455667788 4 | 1122334455667788 5 | 1122334455667788 6 | 1122334455667788 7 | 1122334455667788 8 | 1122334455667788 9 | -------------------------------------------------------------------------------- /jenkins/jenkins.shell: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: jenkins.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-06-27 16:45 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-06-28 11:49 8 | # Function: 9 | #***************************************************************# 10 | source /etc/profile 11 | 12 | echo "必须要要先配置sudoer文件,否则会导致sorry, you must have a tty to run sudo报错" 13 | echo "更改/etc/sudoer文件,注释Defaults requiretty行" 14 | 15 | git pull origin `git branch -a |tail -1 |awk -F'/' '{print $NF}'` 16 | 17 | mvn clean package 18 | 19 | wpath=/home/goujia/project/goujia/web/website 20 | 21 | #wpath="/home/goujia/project/web/website" 22 | 23 | #jpath="/home/goujia/soft/jdk1.7.0_55/bin:$PATH" 24 | jpath="/usr/local/jdk1.8.0_45/bin:$PATH" 25 | jhost="web1" 26 | xshell="xsed.sh" 27 | 28 | aconsole="application.properties.console.test" 29 | #aconsole="application.properties.console" 30 | aweb="application.properties.web.test" 31 | #aweb="application.properties.web" 32 | async="application.properties.sync.test" 33 | #async="application.properties.sync" 34 | 35 | 36 | #function 37 | function sshweb(){ 38 | #$1 host $2 command 39 | ssh $jhost "$1" 40 | } 41 | 42 | function jettyrestart(){ 43 | ssh $jhost "export PATH=$jpath && cd $1 && sudo -u goujia ./bin/jetty.sh stop && sleep 2 && sudo -u goujia ./bin/jetty.sh start && sleep 10" 44 | } 45 | 46 | function taillog(){ 47 | ssh $jhost "tail $wpath/bin/$1/logs/*.log" 48 | } 49 | 50 | #backup && scp all file to web && change the file user 51 | sshweb "rm -rf $wpath/website.bak && if [ -a $wpath/website ];then : ;else mkdir $wpath/website;fi && mv $wpath/website $wpath/website.bak && mkdir $wpath/website" 52 | scp -rp * $jhost:$wpath/website/ 53 | scp -rp .git $jhost:$wpath/website/ 54 | sshweb "chown -R goujia:goujia $wpath/website/" 55 | 56 | #copy application.properties file to console 57 | sshweb "cp -Rf $wpath/website/website-config/$aconsole $wpath/website/website-console/target/website-console-0.0.1-SNAPSHOT/WEB-INF/classes/application.properties" 58 | 59 | #copy application.properties file to web 60 | sshweb "cp -Rf $wpath/website/website-config/$aweb $wpath/website/website-web/target/website-web-0.0.1-SNAPSHOT/WEB-INF/classes/application.properties" 61 | 62 | #copy application.properties file to sync 63 | sshweb "cp -Rf $wpath/website/website-config/$async $wpath/website/website-sync/target/website-sync-0.0.1-SNAPSHOT/WEB-INF/classes/application.properties" 64 | 65 | #change ueidt 66 | #sshweb "sed -i 's/PATH_CONTEXT="\/web"/PATH_CONTEXT="http:\/\/t_website.goujiawang.com"/g' $wpath/website/website-console/target/website-console-0.0.1-SNAPSHOT/source/sui/library/ueditor/ueditor.config.js" 67 | sshweb "/bin/sh $wpath/website/website-config/$xshell" 68 | 69 | #clear jetty log 70 | sshweb "rm -rf $wpath/bin/jetty/logs/*" 71 | sshweb "rm -rf $wpath/bin/jettyweb/logs/*" 72 | sshweb "rm -rf $wpath/bin/jettysync/logs/*" 73 | 74 | #jetty restart 75 | jettyrestart $wpath/bin/jetty/ & 76 | sleep 20 77 | jettyrestart $wpath/bin/jettyweb/ & 78 | sleep 20 79 | jettyrestart $wpath/bin/jettysync/ & 80 | sleep 20 81 | 82 | #tail log 83 | sleep 20 84 | taillog jetty 85 | sleep 20 86 | taillog jettyweb 87 | sleep 20 88 | taillog jettysync 89 | 90 | sleep 3 91 | -------------------------------------------------------------------------------- /mailsend/em.list: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YunKillerE/linux_system_shell/ecd5b23f3f4fe0b86000a939ebefa7b1c203da0a/mailsend/em.list -------------------------------------------------------------------------------- /mailsend/list: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YunKillerE/linux_system_shell/ecd5b23f3f4fe0b86000a939ebefa7b1c203da0a/mailsend/list -------------------------------------------------------------------------------- /mailsend/listFuntion.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: listFuntion.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-11-26 15:52 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-11-26 15:52 8 | # Function: 9 | #***************************************************************# 10 | path=`pwd` 11 | function send_mail() { 12 | echo "BEGIN:VCARD 13 | VERSION:3.0 14 | N:;$1;;; 15 | FN:$1 16 | EMAIL;TYPE=INTERNET;TYPE=WORK:$3 17 | CATEGORIES:$2 18 | END:VCARD" >> out.txt 19 | #echo "the VPN username is : $user the VPN password is : $pass" | mail -s "stc" ljm@goujiawang.com 20 | } 21 | for i in `cat $path/list` 22 | do 23 | u2p=(`sed -n "1p" $path/list`) 24 | name=${u2p[0]} 25 | group=${u2p[1]} 26 | mail=${u2p[2]} 27 | send_mail $name $group $mail 28 | sed -i "1 d" $path/list 29 | done 30 | 31 | 32 | -------------------------------------------------------------------------------- /mailsend/mail.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: mail.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-06-13 03:24 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-06-28 10:58 8 | # Function: auto mail vpn pass to user 9 | #***************************************************************# 10 | path=`pwd` 11 | function send_mail() { 12 | echo " 13 | the VPN username is : $user 14 | 15 | the VPN password is : $pass 16 | 17 | 请妥善保管账号密码!VPN服务器地址:x.x.x.x 18 | 19 | 关于VPN的详细使用见QQ群中的:VPN及SSH跳板使用手册v1.docx 20 | 21 | 此邮件为系统发送,如有问题请联系面包或云尘! 22 | " | mail -s "您的构家网VPN拨号账号已开通" $1 23 | #echo "the VPN username is : $user the VPN password is : $pass" | mail -s "stc" ljm@goujiawang.com 24 | } 25 | for i in `cat $path/em.list` 26 | do 27 | # u2p=(`sed -n "1p" $path/u2p.list`) 28 | # user=${u2p[0]} 29 | # pass=${u2p[1]} 30 | user=goujia_`sed -n "1p" em.list |cut -d'@' -f1` 31 | pass=`openssl rand -base64 5` 32 | send_mail $i 33 | vpnuser add $user $pass 34 | # echo "$user * $pass *" >>/etc/ppp/chap-secrets 35 | # sed -i "1d" $path/u2p.list 36 | # sed -i "1d" $path/em.list 37 | sed -i "1 d" $path/em.list 38 | done 39 | -------------------------------------------------------------------------------- /mailsend/u2g.list: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YunKillerE/linux_system_shell/ecd5b23f3f4fe0b86000a939ebefa7b1c203da0a/mailsend/u2g.list -------------------------------------------------------------------------------- /mailsend/u2g.list~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YunKillerE/linux_system_shell/ecd5b23f3f4fe0b86000a939ebefa7b1c203da0a/mailsend/u2g.list~ -------------------------------------------------------------------------------- /mailsend/useradd.sh: -------------------------------------------------------------------------------- 1 | path=`pwd` 2 | for i in `cat $path/u2g.list` 3 | do 4 | arr=( `sed -n "1p" $path/u2g.list` ) 5 | id=${arr[0]} 6 | name=${arr[1]} 7 | groupadd -g $id $name 8 | useradd -d /home/$name -u $id -g $id -s /bin/bash -G sudo -f $name 9 | echo mytijian2015 | passwd --stdin $name 10 | mkdir /home/$name 11 | chown -R $name:$name /home/$name 12 | sed -i "1 d" $path/u2g.list 13 | done 14 | -------------------------------------------------------------------------------- /mailsend/useradd.sh~: -------------------------------------------------------------------------------- 1 | path=`pwd` 2 | for i in `cat $path/u2g.list` 3 | do 4 | arr=( `sed -n "1p" $path/u2g.list` ) 5 | id=${arr[0]} 6 | name=${arr[1]} 7 | sudo groupadd -g $id $name 8 | sudo useradd -d /home/$name -u $id -g $id -s /bin/bash -G sudo -f $name 9 | echo mytijian2015 | passwd --stdin $name 10 | sudo mkdir /home/$name 11 | sudo chown -R $name:$name /home/$name 12 | sed -i "1 d" $path/u2g.list 13 | done 14 | -------------------------------------------------------------------------------- /mysqlbackup/backupmysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | path="/opt/.mysqlbackup" 4 | 5 | #vari 6 | DATE_TIME=`date +%Y%m%d` 7 | BACKUPFOLDER="database_backup" 8 | YESTDAYBACKUP=`date -d '1 days ago' +%Y%m%d` 9 | DB_HOSTNAME="10.51.28.212" 10 | DB_USERNAME="jkgj_root" 11 | DB_PASSWORD="xxxxx" 12 | DATABASES_NAME=(mytijian_prod jkgj) 13 | 14 | #backup function 15 | backup_mysql(){ 16 | 17 | /usr/bin/mysqldump -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" $1>$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 18 | } 19 | 20 | function restore_mysql(){ 21 | 22 | /usr/bin/mysql -u"$DB_USERNAME" -h "$DB_HOSTNAME" $1 < $path/$BACKUPFOLDER"_"$DATE_TIME/$1"_"$DATE_TIME.sql 23 | } 24 | 25 | decide(){ 26 | 27 | if [ $1 = 0 ] ;then 28 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump ok!" | mail -s "$2 Aliyun DB BK OK! $DATE_TIME" liujunming@mytijian.com 29 | else 30 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump failed" | mail -s "$2 Aliyun DB BK Faild! $DATE_TIME" liujunming@mytijian.com 31 | fi 32 | } 33 | 34 | Tar_Gz(){ 35 | cd $path 36 | if [ -d "$BACKUPFOLDER"_"$YESTDAYBACKUP" ];then 37 | tar -zcvf "$BACKUPFOLDER"_"$YESTDAYBACKUP".tgz "$BACKUPFOLDER"_"$DATE_TIME" 38 | rm -rf "$BACKUPFOLDER"_"$YESTDAYBACKUP" 39 | fi 40 | } 41 | 42 | BACKUP_MYSQL(){ 43 | for i in ${DATABASES_NAME[*]} 44 | do 45 | backup_mysql $i 46 | decide $? $i 47 | done 48 | } 49 | 50 | RESTORE_MYSQL(){ 51 | for i in ${DATABASES_NAME[*]} 52 | do 53 | restore_mysql $i 54 | decide $? $i 55 | done 56 | } 57 | if [ ! -d $path/"$BACKUPFOLDER"_"$DATE_TIME" ];then 58 | mkdir -p $path/"$BACKUPFOLDER"_"$DATE_TIME" 59 | fi 60 | Tar_Gz 61 | 62 | if [ X$1 = Xbackup ];then 63 | BACKUP_MYSQL 64 | elif [ X$1 = Xrestore ];then 65 | RESTORE_MYSQL 66 | else 67 | echo "input error!!" 68 | fi 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /mysqlbackup/backupmysql.sh.old: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #Auther:jimmy 3 | 4 | path=/home/goujia/.mysqlbackup 5 | #vari 6 | DATE_TIME=`date +%Y%m%d` 7 | BACKUPFOLDER="database_backup" 8 | DB_HOSTNAME="localhost" 9 | DB_USERNAME="root" 10 | DB_PASSWORD="ss" 11 | DATABASES_NAME=(ges test_ges site) 12 | 13 | #backup function 14 | 15 | function backup_mysql(){ 16 | 17 | /usr/bin/mysqldump -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" $1>$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 18 | } 19 | 20 | function decide(){ 21 | 22 | if [ $1 = 0 ] ;then 23 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump ok!" | mail -s "$2 Aliyun DB BK OK! $DATE_TIME" liujmsunits@hotmail.com 24 | else 25 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump failed" | mail -s "$2 Aliyun DB BK Faild! $DATE_TIME" liujmsunits@hotmail.com 26 | fi 27 | } 28 | 29 | mkdir $path/"$BACKUPFOLDER"_"$DATE_TIME" 30 | 31 | for i in ${DATABASES_NAME[*]} 32 | do 33 | backup_mysql $i 34 | decide $? $i 35 | done 36 | 37 | -------------------------------------------------------------------------------- /mysqlbackup/bkmysql-2015-8-27.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #Auther:jimmy 3 | #date:2015-6-16 4 | 5 | path=/xxx 6 | 7 | #vari 8 | DATE_TIME=`date +%Y%m%d` 9 | BACKUPFOLDER="database_backup" 10 | DB_HOSTNAME="192.168.1.240" 11 | DB_USERNAME="xxx" 12 | DB_PASSWORD="xxxx" 13 | DATABASES_NAME=(xxx xxx xxxx) 14 | 15 | #backup function 16 | 17 | function backup_mysql(){ 18 | 19 | /usr/bin/mysqldump -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" $1>$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 20 | } 21 | 22 | function decide(){ 23 | 24 | if [ $1 = 0 ] ;then 25 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump ok!" | mail -s "$2 Aliyun DB BK OK! $DATE_TIME" ljm@goujiawang.com 26 | else 27 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump failed" | mail -s "$2 Aliyun DB BK Faild! $DATE_TIME" ljm@goujiawang.com 28 | fi 29 | } 30 | 31 | mkdir $path/"$BACKUPFOLDER"_"$DATE_TIME" 32 | 33 | for i in ${DATABASES_NAME[*]} 34 | do 35 | backup_mysql $i 36 | decide $? $i 37 | done 38 | 39 | cd $path 40 | tar -zcvf "$BACKUPFOLDER"_"$DATE_TIME".tgz "$BACKUPFOLDER"_"$DATE_TIME" 41 | rm -rf $path/"$BACKUPFOLDER"_"$DATE_TIME" 42 | 43 | find $path -type f -mtime +5|xargs rm -rf 44 | -------------------------------------------------------------------------------- /mysqlbackup/bkmysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #Auther:jimmy 3 | #date:2015-6-16 4 | 5 | path=/root/bkmysql/.mysqlbackup 6 | 7 | #vari 8 | DATE_TIME=`date +%Y%m%d` 9 | BACKUPFOLDER="database_backup" 10 | DB_HOSTNAME="localhost" 11 | DB_USERNAME="root" 12 | DB_PASSWORD="" 13 | DATABASES_NAME=(ges test_ges site) 14 | 15 | #backup function 16 | 17 | function backup_mysql(){ 18 | 19 | /usr/bin/mysqldump -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" $1>$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 20 | } 21 | 22 | function restore_mysql(){ 23 | 24 | #/usr/bin/mysql -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" $1<$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 25 | /usr/bin/mysql -u"$DB_USERNAME" -h "$DB_HOSTNAME" $1<$path/$BACKUPFOLDER"_"$DATE_TIME/$1"_"$DATE_TIME.sql 26 | } 27 | 28 | function decide(){ 29 | 30 | if [ $1 = 0 ] ;then 31 | echo "$path/$BACKUPFOLDER"_"$DATE_TIME/$1"_"$DATE_TIME.sql mysqldump OK!" | mail -s "mysqldump OK! $2_$DATE_TIME.sql" liujmsunits@hotmail.com 32 | else 33 | echo "$path/$BACKUPFOLDER"_"$DATE_TIME/$1"_"$DATE_TIME.sql mysqldump failed" | mail -s "mysqldump Faild! $2_$DATE_TIME.sql" liujmsunits@hotmail.com 34 | fi 35 | } 36 | 37 | #mkdir $path/"$BACKUPFOLDER"_"$DATE_TIME" 38 | 39 | for i in ${DATABASES_NAME[*]} 40 | do 41 | restore_mysql $i 42 | decide $? $i 43 | done 44 | 45 | mysql -uroot -e "use ges;update g_menu set TARGET='http://t_www.goujiawang.com' where ID=1150;" 46 | -------------------------------------------------------------------------------- /mysqlbackup/bkremoutemysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mailpath="/home/goujia/.mysql" 3 | mysqlpath="/root/mysql/" 4 | names=`date +%Y%m%d%M%S` 5 | mkdir $mysqlpath/$names 6 | 7 | function sshmysqlges(){ 8 | echo "backup $1........................." 9 | ssh goujia@mail "mysqldump -ugoujia -pgoujia0512 -h rdsbzf6z2emzeyj.mysql.rds.aliyuncs.com $1 > $mailpath/$1_$names.sql" 10 | decide $? 11 | echo "download $1 to local.............." 12 | scp goujia@mail:"$mailpath/$1_$names.sql" $mysqlpath/$names 13 | decide $? 14 | echo "restore $1 to local $2............" 15 | mysql -uroot $2 < $mysqlpath/$names/$1_$names.sql 16 | decide $? 17 | } 18 | 19 | function decide(){ 20 | if [ X$1 == X0 ] 21 | then 22 | echo "successful......................." 23 | else 24 | echo "The last command execute failure!" 25 | exit 1; 26 | fi 27 | } 28 | 29 | sshmysqlges $1 $2 30 | -------------------------------------------------------------------------------- /mysqlbackup/mongo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | path="/opt/.mysqlbackup/mongodb" 4 | #vari 5 | DATE_TIME=`date +%Y%m%d` 6 | BACKUPFOLDER="mongo_backup" 7 | YESTDAYBACKUP=`date -d '1 days ago' +%Y%m%d` 8 | DB_HOSTNAME="10.51.28.212" 9 | 10 | #backup function 11 | backup_mongo(){ 12 | echo "begin backup mongo ..........." 13 | mongodump -h $DB_HOSTNAME --port 22333 -o $path/$BACKUPFOLDER"_"$DATE_TIME 14 | echo "end backup mongo ............." 15 | } 16 | 17 | function restore_mongo(){ 18 | echo "begin restore mongo ..........." 19 | mongorestore --host 10.117.26.117 --port 22333 $path/$BACKUPFOLDER"_"$DATE_TIME 20 | echo "end restore mongo ............." 21 | } 22 | 23 | Tar_Gz_Today(){ 24 | cd $path 25 | if [ -d "$BACKUPFOLDER"_"$DATE_TIME" ];then 26 | tar -zcvf "$BACKUPFOLDER"_"$DATE_TIME".tgz "$BACKUPFOLDER"_"$DATE_TIME" 27 | rm -rf "$BACKUPFOLDER"_"$YESTDAYBACKUP" 28 | fi 29 | } 30 | 31 | Create_Directory() { 32 | if [ ! -d $path/"$BACKUPFOLDER"_"$DATE_TIME" ];then 33 | mkdir -p $path/"$BACKUPFOLDER"_"$DATE_TIME" 34 | else 35 | rm -rf $path/"$BACKUPFOLDER"_"$DATE_TIME" 36 | mkdir -p $path/"$BACKUPFOLDER"_"$DATE_TIME" 37 | fi 38 | } 39 | 40 | if [ X$1 = Xbackup ];then 41 | Create_Directory 42 | backup_mongo 43 | Tar_Gz_Today 44 | elif [ X$1 = Xrestore ];then 45 | restore_mongo 46 | else 47 | echo "input error!!" 48 | fi 49 | -------------------------------------------------------------------------------- /mysqlbackup/mysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | path="/opt/.mysqlbackup" 4 | 5 | #vari 6 | DATE_TIME=`date +%Y%m%d` 7 | BACKUPFOLDER="database_backup" 8 | YESTDAYBACKUP=`date -d '1 days ago' +%Y%m%d` 9 | DB_HOSTNAME="10.51.28.212" 10 | DB_USERNAME="xxxx" 11 | DB_PASSWORD="xxxx" 12 | DATABASES_NAME=(mytijian_prod) 13 | 14 | DB_ROOTNAME="xxxx" 15 | DB_ROOTPASSWORD="xxxx" 16 | DB_RESTOREHOSTNAME="localhost" 17 | 18 | 19 | #backup function 20 | backup_mysql(){ 21 | echo "begin backup mysql ..........." 22 | /usr/bin/mysqldump -u"$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOSTNAME" -R $1>$path/"$BACKUPFOLDER"_"$DATE_TIME"/"$1"_"$DATE_TIME".sql 23 | echo "end backup mysql ............." 24 | } 25 | 26 | function restore_mysql(){ 27 | echo "begin restore mysql ..........." 28 | #/usr/bin/mysql -u"$DB_USERNAME" -h "$DB_HOSTNAME" $1 < $path/$BACKUPFOLDER"_"$DATE_TIME/$1"_"$DATE_TIME.sql 29 | /usr/bin/mysql -u"$DB_ROOTNAME" -p"$DB_ROOTPASSWORD" -h "$DB_RESTOREHOSTNAME" $1 < $path/$BACKUPFOLDER"_"$DATE_TIME/$1_"$DATE_TIME".sql 30 | #/usr/bin/mysql -u"$DB_ROOTNAME" -p"$DB_ROOTPASSWORD" -h "$DB_RESTOREHOSTNAME" mmtest < $path/$BACKUPFOLDER"_"$DATE_TIME/$1_"$DATE_TIME".sql 31 | echo "end restore mysql ............." 32 | } 33 | 34 | #还原时数据库数据清理 35 | Mysql_Data_Update() { 36 | echo "clear data....." 37 | cat $path/sql.ini | while read i 38 | do 39 | mysql -u$DB_ROOTNAME -p$DB_ROOTPASSWORD -e "$i" 40 | done 41 | } 42 | 43 | decide(){ 44 | 45 | if [ $1 = 0 ] ;then 46 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump ok!" | mail -s "$2 Aliyun DB BK OK! $DATE_TIME" liujunming@mytijian.com 47 | else 48 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$2'_'$DATE_TIME.sql mysqldump failed" | mail -s "$2 Aliyun DB BK Faild! $DATE_TIME" liujunming@mytijian.com 49 | fi 50 | } 51 | 52 | Tar_Gz(){ 53 | cd $path 54 | if [ -d "$BACKUPFOLDER"_"$YESTDAYBACKUP" ];then 55 | tar -zcvf "$BACKUPFOLDER"_"$YESTDAYBACKUP".tgz "$BACKUPFOLDER"_"$DATE_TIME" 56 | rm -rf "$BACKUPFOLDER"_"$YESTDAYBACKUP" 57 | fi 58 | } 59 | 60 | Tar_Gz_Today(){ 61 | cd $path 62 | if [ -d "$BACKUPFOLDER"_"$DATE_TIME" ];then 63 | tar -zcvf "$BACKUPFOLDER"_"$DATE_TIME".tgz "$BACKUPFOLDER"_"$DATE_TIME" 64 | rm -rf "$BACKUPFOLDER"_"$YESTDAYBACKUP" 65 | fi 66 | } 67 | 68 | BACKUP_MYSQL(){ 69 | for i in ${DATABASES_NAME[*]} 70 | do 71 | backup_mysql $i 72 | decide $? $i 73 | done 74 | } 75 | 76 | RESTORE_MYSQL(){ 77 | for i in ${DATABASES_NAME[*]} 78 | do 79 | restore_mysql $i 80 | decide $? $i 81 | done 82 | } 83 | Create_Directory() { 84 | if [ ! -d $path/"$BACKUPFOLDER"_"$DATE_TIME" ];then 85 | mkdir -p $path/"$BACKUPFOLDER"_"$DATE_TIME" 86 | else 87 | rm -rf $path/"$BACKUPFOLDER"_"$DATE_TIME"/tmp 88 | mkdir -p $path/"$BACKUPFOLDER"_"$DATE_TIME"/tmp 89 | mv $path/"$BACKUPFOLDER"_"$DATE_TIME"/*.sql $path/"$BACKUPFOLDER"_"$DATE_TIME"/tmp/ 90 | fi 91 | } 92 | 93 | if [ X$1 = Xbackup ];then 94 | Create_Directory 95 | BACKUP_MYSQL 96 | Tar_Gz_Today 97 | elif [ X$1 = Xrestore ];then 98 | RESTORE_MYSQL 99 | Mysql_Data_Update 100 | else 101 | echo "input error!!" 102 | fi 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /mysqlbackup/rsmysql.sh: -------------------------------------------------------------------------------- 1 | 2 | path=/root/bkmysql/.mysqlbackup 3 | 4 | DATE_TIME=`date +%Y%m%d` 5 | BACKUPFOLDER="database_rsync" 6 | 7 | #backup function 8 | 9 | 10 | function decide(){ 11 | 12 | if [ $1 = 0 ] ;then 13 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$1'_'$DATE_TIME rsync ok!" | mail -s "$DATE_TIME rsync 247 ok!" liujmsunits@hotmail.com 14 | else 15 | echo "$path/$BACKUPFOLDER'_'$DATE_TIME/$1'_'$DATE_TIME rsync error" | mail -s "$DATE_TIME rsync 247 error!" liujmsunits@hotmail.com 16 | fi 17 | } 18 | rsync -aSvH --password-file=/etc/rsyncd/secrets --bwlimit=800 root@112.124.xx.xx::mysql /root/bkmysql/.mysqlbackup >/dev/null 2>1& 19 | decide $? 20 | sleep 10 21 | -------------------------------------------------------------------------------- /mysqlbackup/syncmysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: syncmysql.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-10-23 09:41 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-10-23 09:41 8 | # Function: 9 | #***************************************************************# 10 | #!/bin/bash 11 | mailpath="/home/goujia/.mysql" 12 | mysqlpath="/root/mysql/" 13 | names=`date +%Y%m%d%M%S` 14 | mkdir $mysqlpath/$names 15 | 16 | function sshmysqlges(){ 17 | echo "backup $1........................." 18 | 19 | ssh goujia@mail "mysqldump -uxxx -pxxxx -h rdsbzf6z2emzeyj.mysql.rds.aliyuncs.com $1 > $mailpath/$1_$names.sql" 20 | echo "download $1 to local.............." 21 | scp goujia@mail:"$mailpath/$1_$names.sql" $mysqlpath/$names 22 | echo "restore $1 to local $2............" 23 | mysql -uroot $2 < $mysqlpath/$names/$1_$names.sql 24 | } 25 | 26 | sshmysqlges $1 $2 27 | -------------------------------------------------------------------------------- /mytijian/PreExecution.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | CD /D %~dp0 3 | 4 | for /f "tokens=1 delims= " %%i in (MYTIJIAN_RELOAD.ini) do ( 5 | echo "download upgrade.zip" 6 | wget.exe %%i 7 | ) 8 | 9 | echo "begin unzip file....." 10 | md upgrade 11 | cd upgrade 12 | ..\WinRAR\WinRAR.exe x ..\upgrade.zip 13 | cd .. 14 | 15 | echo "begin cp file....." 16 | md backup 17 | for /f "tokens=1,2 delims= " %%i in (upgrade\mediator-agent\winabc.txt) do ( 18 | rem echo file %%i %%j 19 | echo "backup %%j........." 20 | copy /y %%j .\backup 21 | echo "copy %%i........." 22 | copy /y .\upgrade\mediator-agent\%%i .\%%j 23 | ) 24 | for /f "tokens=1,2 delims= " %%i in (upgrade\control\winabc.txt) do ( 25 | rem echo file %%i %%j 26 | echo "backup %%j........." 27 | copy /y %%j .\backup 28 | echo "copy %%i........." 29 | copy /y .\upgrade\control\%%i .\%%j 30 | ) 31 | 32 | echo "delete unused file" 33 | for /f "tokens=1 delims= " %%i in (upgrade\mediator-agent\del_winabc.txt) do ( 34 | rem echo file %%i %%j 35 | echo "del %%i........." 36 | del /Q .\%%i 37 | ) 38 | for /f "tokens=1 delims= " %%i in (upgrade\control\del_winabc.txt) do ( 39 | rem echo file %%i %%j 40 | echo "del %%i........." 41 | del /Q .\%%i 42 | ) 43 | 44 | 45 | rem copy /y upgrade\winabc.txt backup 46 | del /Q .\upgrade\control\* 47 | del /Q .\upgrade\mediator-agent\* 48 | rd .\upgrade\control 49 | rd .\upgrade\mediator-agent 50 | rd .\upgrade 51 | 52 | move upgrade.zip backup 53 | pause 54 | -------------------------------------------------------------------------------- /mytijian/PreExecution.sh: -------------------------------------------------------------------------------- 1 | set -x 2 | #!/bin/bash 3 | #当前目录 4 | spwd="/opt/tomcat" 5 | #需要监测的文件路径 6 | filepath=$spwd/MYTIJIAN_RELOAD.ini 7 | tmpfile1="/opt/tomcat/upgrade/mediator-agent" 8 | tmpfile2="/opt/tomcat/upgrade/control" 9 | 10 | Dos2unixFile() { 11 | if [ -f $tmpfile/linabc.txt ];then 12 | dos2unix $tmpfile/linabc.txt 13 | else 14 | exit 1; 15 | fi 16 | } 17 | 18 | download_upgrade(){ 19 | 20 | if [ -s $filepath ];then 21 | url=`cat $filepath` 22 | if [ -n $url ];then 23 | : 24 | else 25 | echo "url is emety" 26 | exit 1 27 | fi 28 | fi 29 | 30 | cd $spwd 31 | wget $url 32 | if [ X$? = X0 ];then 33 | : 34 | else 35 | echo "download file error!!" 36 | exit 1 37 | fi 38 | 39 | } 40 | 41 | #delete file 42 | function UzipFile(){ 43 | download_upgrade 44 | if [ -d $spwd/upgrade ];then 45 | rm -rf $spwd/upgrade/* 46 | else 47 | mkdir $spwd/upgrade 48 | fi 49 | unzip $spwd/upgrade.zip -d $spwd/upgrade 50 | sed -i 's#\\#\/#g' $tmpfile/linabc.txt 51 | } 52 | 53 | MkdirBackup() { 54 | if [ -d $spwd/backup ];then 55 | : 56 | else 57 | mkdir $spwd/backup 58 | fi 59 | 60 | } 61 | 62 | function CopyFile(){ 63 | while read line 64 | do 65 | a=`echo $line |awk '{print $1}'` 66 | b=`echo $line |awk '{print $2}'` 67 | echo a=$a 68 | echo b=$b 69 | echo "backup file $b ......" 70 | #cp -rf $spwd/$b $spwd/backup/`date +%Y%m` 71 | echo "upgrade file $a ......" 72 | cp -rf $1/$a $spwd/$b 73 | #chown $USER:$USER $spwd/$b 74 | done < $1/linabc.txt 75 | } 76 | 77 | function delete_old_work_file(){ 78 | while read delfile 79 | do 80 | if [ -n $delfile ];then 81 | cd $spwd 82 | rm -rf $delfile 83 | fi 84 | done < $1/del_linabc.txt 85 | } 86 | 87 | function decidefile(){ 88 | if [ X$1 = Xstop ];then 89 | #tomcat pid 90 | PID=`ps -ef|grep tomcat| grep -v grep | awk '{print $2}'` 91 | if [ -n $PID ] 92 | then 93 | kill -9 $PID 94 | fi 95 | else 96 | #tomcat pid 97 | PID=`ps -ef|grep tomcat| grep -v grep | awk '{print $2}'` 98 | if [ -n $PID ] 99 | then 100 | kill -9 $PID 101 | fi 102 | source /etc/profile 2>&1 >/dev/null 103 | $spwd/bin/startup.sh 104 | fi 105 | } 106 | 107 | 108 | function DelFile(){ 109 | #while read line 110 | #do 111 | # a=`echo $line |awk '{print $1}'` 112 | # b=`echo $line |awk '{print $2}'` 113 | # echo a=$a 114 | # echo b=$b 115 | # rm -rf $spwd/$a 116 | #done < $spwd/linabc.txt 117 | # rm -rf $spwd/linabc.txt 118 | # rm -rf $spwd/winabc.txt 119 | mv $spwd/upgrade.zip $spwd/backup/upgrade-`date +%Y%m`.zip 120 | #mv $tmpfile/linabc.txt $spwd/backup 121 | echo "delete tmpfile ......." 122 | rm -rf $filepath 123 | rm -rf $tmpfile 124 | rm -rf $spwd/upgrade.zip 125 | } 126 | 127 | function RecoveDirectory(){ 128 | decidefile stop 129 | 130 | dirs=`date +%Y%m` 131 | mkdir -p $spwd/backup/$dirs 132 | mv $spwd/webapps/control $spwd/backup/$dirs 133 | mv $spwd/webapps/mediator-agent $spwd/backup/$dirs 134 | 135 | #mv directory to webapps 136 | mv $tmpfile/control $spwd/webapps/ 137 | mv $tmpfile/mediator-agent $spwd/webapps/ 138 | } 139 | 140 | 141 | if [ -f $filepath ] 142 | then 143 | var=`cat $filepath` 144 | if [ X$var = Xrecove ];then 145 | UzipFile 146 | MkdirBackup 147 | RecoveDirectory 148 | decidefile 149 | DelFile 150 | else 151 | UzipFile 152 | MkdirBackup 153 | CopyFile $tmpfile1 154 | CopyFile $tmpfile2 155 | if [ -s $tmpfile1/del_linabc.txt ];then 156 | delete_old_work_file $tmpfile1 157 | fi 158 | if [ -s $tmpfile2/del_linabc.txt ];then 159 | delete_old_work_file $tmpfile2 160 | fi 161 | decidefile 162 | DelFile 163 | fi 164 | else 165 | : 166 | fi 167 | set +x 168 | 169 | #!/bin/bash 170 | #****************************************************************# 171 | # ScriptName: monitor.sh 172 | # Create Date: 2015-12-25 10:17 173 | # Function: 174 | #***************************************************************# 175 | xtomcat=`ps aux |grep tomcat |grep -v grep` 176 | if [ -z "$xtomcat" ];then 177 | source /etc/profile 2>&1 >/dev/null 178 | /opt/apache-tomcat-8.0.26/bin/startup.sh 179 | else 180 | : 181 | fi 182 | -------------------------------------------------------------------------------- /mytijian/configwget.sh: -------------------------------------------------------------------------------- 1 | base_mediator_agent="xxx" 2 | mediator_probe="xx" 3 | configfile="xx" 4 | -------------------------------------------------------------------------------- /mytijian/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #用法:参数:医院名称 3 | murl="http://spi.mytijian.com:mapport" 4 | stageurl="http://spi.mytijian.com:mapport" 5 | mpwd=`pwd` 6 | 7 | function DecideArgs() { 8 | if [ $1 != 1 ];then 9 | echo "input error!! you should input one args:hospital name" 10 | exit 1 11 | else 12 | : 13 | fi 14 | } 15 | 16 | function decideisinstalled() { 17 | if [ $? = 0 ];then 18 | echo "jdk/tomcat/mediot-agent installed!!" 19 | else 20 | $1 21 | fi 22 | } 23 | 24 | function decideisexist() { 25 | if [ -d $1 ];then 26 | rm -rf $1 27 | else 28 | : 29 | fi 30 | } 31 | 32 | #install jdk 33 | function jdkins() { 34 | wget $murl/linux/jdk.tgz 35 | decideisinstalled "echo 'jdk.tgz download failure!! reinstall install.sh' && exit 1" 36 | tar -zxvf $mpwd/jdk.tgz -C /usr/local/ 37 | rm -rf $mpwd/jdk.tgz* 38 | mv /usr/local/jdk /tmp 39 | ln -s /usr/local/jdk1.8.0_45 /usr/local/jdk 40 | #echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile 41 | 42 | if grep "export PATH=" /etc/profile ;then 43 | sed -i '/export JAVA_HOME=/d' /etc/profile 44 | sed -i "/export PATH=/i\export JAVA_HOME=/usr/local/jdk" /etc/profile 45 | sed -i "s#export\ PATH=#export\ PATH=\$JAVA_HOME/bin:#g" /etc/profile 46 | else 47 | echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile 48 | fi 49 | 50 | echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> /etc/profile 51 | #sed -i "/export PATH=/i\export JAVA_HOME=/usr/local/jdk" /etc/profile 52 | #sed -i "s#export\ PATH=#export\ PATH=\$JAVA_HOME/bin:#g" /etc/profile 53 | source /etc/profile 54 | } 55 | function InstallJdk() { 56 | # decideisexist "/usr/local/jdk1.8.0_45" 57 | #source /etc/profile 58 | #which wget 59 | #decideisinstalled "rpm -ivh $murl/linux/wget.rpm" 60 | #which wget 61 | #if [ $? != 0 ];then 62 | # echo "pls install wget!!" 63 | # exit 1; 64 | #fi 65 | #which java 66 | #decideisinstalled "jdkins" 67 | #which java 68 | ls /usr/local/jdk1.8.0_45 69 | decideisinstalled "jdkins" 70 | } 71 | 72 | #install tomcat 73 | function TomcatInstall() { 74 | #decideisexist "/opt/apache-tomcat-8.0.26" 75 | #decideisexist "/opt/tomcat" 76 | if [ -d /opt/apache-tomcat-8.0.26 -o -d /opt/tomcat ];then 77 | : 78 | else 79 | wget $murl/linux/tomcat.tgz 80 | decideisinstalled "echo 'tomcat.tgz download failure!! reinstall install.sh' && exit 1" 81 | tar -zxvf $mpwd/tomcat.tgz -C /opt/ 82 | ln -s /opt/apache-tomcat-8.0.26 /opt/tomcat 83 | rm -rf $mpwd/tomcat.tgz* 84 | fi 85 | } 86 | 87 | #unzip mediator-agent 88 | function MediatorUnzip() { 89 | rm -rf /opt/tomcat/webapps/mediator-agent* 90 | rm -rf $mpwd/mediator-agent.zip* 91 | wget $murl/public/configfile/hospital/$1/mediator-agent.zip 92 | decideisinstalled "echo 'mediator-agent.tgz download failure!! reinstall install.sh' && exit 1" 93 | unzip $mpwd/mediator-agent.zip -d /opt/tomcat/webapps/ 94 | rm -rf $mpwd/mediator-agent.zip* 95 | } 96 | 97 | function MediatorSeparateUnzip() { 98 | rm -rf /opt/tomcat/webapps/mediator-agent* 99 | rm -rf $mpwd/mediator-agent.zip* 100 | #download base mediator-agent.zip 101 | wget $stageurl/mediator/base_mediator_agent 102 | decideisinstalled "echo 'mediator-agent.tgz download failure!! reinstall install.sh' && exit 1" 103 | unzip $mpwd/base_mediator_agent -d /opt/tomcat/webapps/mediator-agent 104 | rm -rf $mpwd/mediator-agent* 105 | #download his zip 106 | wget $stageurl/mediator/probe/mediator_probe 107 | decideisinstalled "echo 'mediator-probe.tgz download failure!! reinstall install.sh' && exit 1" 108 | unzip $mpwd/mediator_probe -d /opt/tomcat/webapps/mediator-agent/WEB-INF/lib/ 109 | mv /opt/tomcat/webapps/mediator-agent/WEB-INF/lib/mediator-probe*/* /opt/tomcat/webapps/mediator-agent/WEB-INF/lib/ 110 | rm -rf $mpwd/mediator_probe* 111 | #download configfile 112 | wget $murl/public/configfile/hospital/english_hospital_name/agent-db.properties 113 | cp -rf agent-db.properties /opt/tomcat/webapps/mediator-agent/WEB-INF/classes/agent-db.properties 114 | decideisinstalled "echo 'mediator-english_hospital_name1.tgz download failure!! reinstall install.sh' && exit 1" 115 | wget $murl/public/configfile/hospital/english_hospital_name/config.properties 116 | cp -rf config.properties /opt/tomcat/webapps/mediator-agent/WEB-INF/classes/config.properties 117 | decideisinstalled "echo 'mediator-english_hospital_name2.tgz download failure!! reinstall install.sh' && exit 1" 118 | wget $murl/public/configfile/hospital/english_hospital_name/tasks.properties 119 | cp -rf tasks.properties /opt/tomcat/webapps/mediator-agent/WEB-INF/classes/tasks.properties 120 | decideisinstalled "echo 'mediator-english_hospital_name2.tgz download failure!! reinstall install.sh' && exit 1" 121 | rm -rf $mpwd/agent-db.properties 122 | rm -rf $mpwd/config.properties 123 | rm -rf $mpwd/tasks.properties 124 | } 125 | 126 | function deploy_control() { 127 | rm -rf /opt/tomcat/webapps/control* 128 | rm -rf $mpwd/control* 129 | #download base mediator-agent.zip 130 | wget $stageurl/mediator/base_control_agent 131 | decideisinstalled "echo 'mediator-agent.tgz download failure!! reinstall install.sh' && exit 1" 132 | unzip $mpwd/base_control_agent -d /opt/tomcat/webapps/control 133 | wget $murl/public/configfile/hospital/english_hospital_name/control.config.properties 134 | cp -rf control.config.properties /opt/tomcat/webapps/control/WEB-INF/classes/config.properties 135 | wget $murl/public/configfile/hospital/english_hospital_name/control-db.properties 136 | cp -rf control-db.properties /opt/tomcat/webapps/control/WEB-INF/classes/control-db.properties 137 | rm -rf $mpwd/control* 138 | } 139 | 140 | #copy PreExecution.sh 141 | function CopyShellFile() { 142 | wget $murl/shell/PreExecution.sh 143 | cp -rf PreExecution.sh /opt/tomcat/ 144 | rm -rf PreExecution.sh 145 | #cp -rf /opt/tomcat/webapps/mediator-agent/PreExecution.sh /opt/tomcat/ 146 | #change permission 147 | chown -R mytijian:mytijian /opt/tomcat* 148 | chown -R mytijian:mytijian /opt/apache-tomcat-* 149 | } 150 | 151 | #useradd 152 | function UserAddX() { 153 | id mytijian 154 | if [ $? = 0 ];then 155 | : 156 | else 157 | useradd mytijian 158 | echo mytijian2015 |passwd -–stdin mytijian 159 | fi 160 | } 161 | 162 | PostCommand() { 163 | 164 | cd /opt/tomcat 165 | echo "add crontab......" 166 | if grep PreExecution /var/spool/cron/mytijian ;then 167 | : 168 | else 169 | echo "*/5 * * * * /bin/sh /opt/tomcat/PreExecution.sh" >> /var/spool/cron/mytijian 170 | fi 171 | chown mytijian:mytijian /var/spool/cron/mytijian 172 | 173 | echo "add rc.local...." 174 | if grep "apache-tomcat-8.0.26" /etc/rc.local;then 175 | : 176 | else 177 | echo "/opt/apache-tomcat-8.0.26/bin/startup.sh" >> /etc/rc.local 178 | fi 179 | 180 | echo "部署成功!!" 181 | echo -e '\033[41;33;1m 开始切换到mytijian用户,然后手动执行/opt/tomcat/bin/startup.sh启动tomcat \033[0m' 182 | su mytijian 183 | } 184 | 185 | Install_Autossh() { 186 | if [ -f /etc/redhat-release ];then 187 | : 188 | else 189 | echo "this is not centos" 190 | exit 1 191 | fi 192 | 193 | ver=`cat /etc/redhat-release |grep -o '[0-9]' |head -1` 194 | 195 | if [ $ver -lt 6 ] ; then 196 | echo 5 197 | rpm -ivh http://spi.mytijian.com/linux/autossh-1.4c-1.el5.rf.x86_64.rpm 198 | else 199 | echo 67 200 | rpm -ivh http://spi.mytijian.com/linux/autossh-1.4c-2.el6.x86_64.rpm 201 | fi 202 | 203 | 204 | 205 | } 206 | 207 | #start tomcat 208 | #PID=`ps -ef|grep tomcat | grep -v grep | awk '{print $2}'` 209 | #[ ! -n "$PID" ] || kill -9 $PID 210 | 211 | #sudo -u jenkins /opt/tomcat/bin/startup.sh 212 | 213 | #begin install 214 | #DecideArgs $# 215 | #if [ X$2 == Xall ] ;then 216 | InstallJdk 217 | TomcatInstall 218 | #MediatorUnzip $1 219 | MediatorSeparateUnzip 220 | deploy_control 221 | UserAddX 222 | CopyShellFile 223 | Install_Autossh 224 | 225 | cd /opt/tomcat 226 | echo "add crontab......" 227 | if grep PreExecution /var/spool/cron/mytijian ;then 228 | : 229 | else 230 | echo "*/5 * * * * /bin/sh /opt/tomcat/PreExecution.sh" >> /var/spool/cron/mytijian 231 | fi 232 | chown mytijian:mytijian /var/spool/cron/mytijian 233 | echo "部署成功!!" 234 | echo -e '\033[41;33;1m 开始切换到mytijian用户,然后手动执行/opt/tomcat/bin/startup.sh启动tomcat \033[0m' 235 | su mytijian 236 | 237 | #elif [ X$2 == Xagent ] ;then 238 | # MediatorUnzip $1 239 | # CopyShellFile 240 | # UserAddX 241 | #else 242 | # echo "pls input at least two parameters" 243 | #fi 244 | -------------------------------------------------------------------------------- /mytijian/make.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: make.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-12-22 17:27 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-12-22 17:27 8 | # Function: 9 | #***************************************************************# 10 | source ./configwget.sh 11 | sed -i "s/base_mediator_agent/$base_mediator_agent/g" install.sh 12 | sed -i "s/mediator_probe/$mediator_probe/g" install.sh 13 | sed -i "s/configfile/$configfile/g" install.sh 14 | -------------------------------------------------------------------------------- /mytijian/makeinstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mpath="/opt/mediator/public/configfile/hospital" 3 | tmppath="/opt/mediator/shell" 4 | 5 | MakeInstallSh() { 6 | source $mpath/$1/configwget.sh 7 | cp -rf $tmppath/install.sh $tmppath/install.sh.tmp 8 | sed -i "s/base_mediator_agent/$base_mediator_agent/g" $tmppath/install.sh.tmp 9 | sed -i "s/mediator_probe/$mediator_probe/g" $tmppath/install.sh.tmp 10 | sed -i "s/english_hospital_name/$english_hospital_name/g" $tmppath/install.sh.tmp 11 | sed -i "s/mapport/$mapport/g" $tmppath/install.sh.tmp 12 | sed -i "s/base_control_agent/$base_control_agent/g" $tmppath/install.sh.tmp 13 | cp -rf $tmppath/install.sh.tmp $mpath/$1/install.sh 14 | rm -rf $tmppath/install.sh.tmp 15 | } 16 | #if [ -f $mpath/$1/configwget.sh ];then 17 | # echo "pls ensure exist the file $mpath/$1/configwget.sh" 18 | # exit 1; 19 | #fi 20 | 21 | if [ $# != 1 ];then 22 | echo "pls input an args of hospital_name" 23 | exit 1 24 | elif [ ! -f $mpath/$1/configwget.sh ];then 25 | echo "pls ensure exist the file $mpath/$1/configwget.sh" 26 | exit 1; 27 | else 28 | MakeInstallSh $1 29 | fi 30 | -------------------------------------------------------------------------------- /mytijian/makezip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #用法:参数1:linux 参数2:医院名称 3 | mpath="/opt/mediator" 4 | publicpath=$mpath/public 5 | linuxpath=$mpath/linux 6 | winpath=$mpath/windows 7 | configpath=$publicpath/configfile/hospital 8 | targetpath=$mpath/tomcat/mediator-agent 9 | controlpath=$mpath/tomcat/control 10 | shellpath=$mpath/shell 11 | 12 | source $configpath/$2/configwget.sh 13 | 14 | Dos2unixFile() { 15 | if [ -f $targetpath/linabc.txt ];then 16 | rm -rf $targetpath/linabc.txt 17 | cp $publicpath/winabc.txt $targetpath/linabc.txt 18 | dos2unix $targetpath/linabc.txt 19 | else 20 | cp $publicpath/winabc.txt $targetpath/linabc.txt 21 | dos2unix $targetpath/linabc.txt 22 | fi 23 | } 24 | 25 | LinuxZip() { 26 | 27 | rm -rf $mpath/tomcat/mediator-agent* 28 | unzip $publicpath/mediator-agent.zip -d $mpath/tomcat 29 | cp -rf $configpath/hospital/$1/*.properties $targetpath/WEB-INF/classes/ 30 | cd $mpath/tomcat 31 | cp -rf $shellpath/PreExecution* $targetpath/ 32 | zip -r mediator-agent.zip mediator-agent 33 | #mkdir $configpath/$1/ 34 | cp -rf mediator-agent.zip $configpath/hospital/$1/ 35 | } 36 | 37 | WindowsZip() { 38 | #source $configpath/$english_hospital_name/configwget.sh 39 | rm -rf $mpath/tomcat/mediator-agent 40 | unzip $mpath/mediator/$base_mediator_agent -d $mpath/tomcat/mediator-agent 41 | unzip $mpath/mediator/probe/$mediator_probe -d $mpath/tomcat/mediator-agent/WEB-INF/lib/ 42 | #cp -rf $mpath/tomcat/*probe*/* $mpath/tomcat/mediator-agent/WEB-INF/lib/ 43 | cp -rf $configpath/$1/*.properties $targetpath/WEB-INF/classes/ 44 | #control 45 | unzip $mpath/mediator/$base_control_agent -d $mpath/tomcat/control 46 | cp -rf $configpath/$1/control.config.properties $controlpath/WEB-INF/classes/config.properties 47 | cp -rf $configpath/$1/control-db.properties $controlpath/WEB-INF/classes/control-db.properties 48 | cd $mpath/tomcat 49 | cp $shellpath/PreExecution.bat . 50 | cp -rf $winpath/MyTiJianClientUpdateTool.exe . 51 | cp -rf $winpath/MyTiJianClientUpdateService.exe . 52 | zip -r mediator-agent.zip mediator-agent control MyTiJianClientUpdateService.exe MyTiJianClientUpdateTool.exe PreExecution.bat 53 | #zip -r $1/$1.zip tomcat/mediator-agent shell 54 | #zip -r $1/all.zip tomcat/mediator-agent shell windows 55 | #mkdir $configpath/$1/ 56 | mv -f mediator-agent.zip $configpath/$1/ 57 | rm -rf $mpath/tomcat/* 58 | } 59 | 60 | if [ $# != 2 ] ;then 61 | echo "input error! you should input one args!!!" 62 | exit 1; 63 | elif [ $1 = linux ] ;then 64 | LinuxZip $english_hospital_name 65 | elif [ $1 = windows ] ;then 66 | WindowsZip $english_hospital_name 67 | fi 68 | -------------------------------------------------------------------------------- /mytijian/manage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: ssh.sh 4 | # Function: 5 | #***************************************************************# 6 | Decide() { 7 | if [ X$1 = X0 ];then 8 | : 9 | else 10 | wget http://spi.mytijian.com/linux/$2 11 | yum localinstall epel autossh 12 | fi 13 | } 14 | Install_Autossh(){ 15 | if [ -f /etc/redhat-release ];then 16 | : 17 | else 18 | echo "this is not centos" 19 | exit 1 20 | fi 21 | 22 | ver=`cat /etc/redhat-release |grep -o '[0-9]' |head -1` 23 | 24 | which autossh 25 | if [ X$? = X1 ];then 26 | if [ $ver -lt 6 ] ; then 27 | echo 5 28 | rpm -ivh http://spi.mytijian.com/linux/autossh-1.4c-1.el5.rf.x86_64.rpm 29 | Decide $? autossh-1.4c-1.el5.rf.x86_64.rpm 30 | else 31 | echo 67 32 | rpm -ivh http://spi.mytijian.com/linux/autossh-1.4c-2.el6.x86_64.rpm 33 | Decide $? autossh-1.4c-2.el6.x86_64.rpm 34 | fi 35 | else 36 | : 37 | fi 38 | } 39 | 40 | Ssh_GenKey_Auto() { 41 | if [ -d /root/.ssh ];then 42 | chmod 700 /root/.ssh 43 | else 44 | mkdir /root/.ssh 45 | chmod 700 /root/.ssh 46 | fi 47 | echo "-----BEGIN RSA PRIVATE KEY----- 48 | MIIEowIBAAKCAQEApJMrQHljB9hYQWafBJ+wzV4NmIHJvddndaSy7AniqfBwGiOK 49 | adljx2RPsJlMRDNhRJ9ikpqgfohY7i5KzfW6zFvLNV7B+5hZOHt8QCjkr8WpYnCq 50 | aaXPMxJ5MFRV7eW/CHt98R477Y9/e/NfTgnFut71PipkGGKcJrrNnIkiVEsCd/1v 51 | aetBmeXwWLw0nGL93VnSEgMKt+anp9ktCu6mnhVGrRc1JfsblqkhCvnXz65TGy9p 52 | iI2kt0+U58Z0FiX6G5JitN21v0E5j+mgDpVNBxH4A1SaDJfSEuDy+yy/f8vyNDwT 53 | xwl99Wp4T5t4EQDNCZGYFn/ueUicGdLzqxt/lQIDAQABAoIBADmZTGT3VwKS5GiX 54 | WwZKQZ3O0iFTI2Fu90XES96yowLpJMLxN4G0lOhfIkjjjj68YMmcouo+dfdzDvTl 55 | fMbSvvrxEZDvRiMhMfDDvzvRVCB0pJDQb+AjuP3d9E5G5gAqDY8RcYWnGEBPncWq 56 | 6ussHmkFyX1lZrzmHlKrxHSJxlsLifNqc5T2/mrnw3/Djy4g6PjbSzHM+DYk4vM+ 57 | bm/Q/5cCtn25jyimaMdy+AxpRAWjOO8MiSyTVYUSTRJT6wYbbSFgCLZxO7mEK/5T 58 | VnTmyaJWDLgCEK2segaG7sP1OUluE+K+BOINu/3BKjq4REd2yw+rfStRYKZQGOjT 59 | M82hgY0CgYEA0D1sHgNLdn294iqDGjKHVNt9kltotyZmSh0pO33X1NGUHvrd1MzA 60 | MZZZLZ2Y39f9nAIqfOpJ12u3VOX10HzDSwvt8OsajrjyFbSRSp7LNtMGJZStd8WV 61 | epOPpFXiVvYG0TEAl4K6HvDTmYbZywVQGdN76BFvsASlltIPqr+oOhsCgYEAylIA 62 | U8spZKcv5aYomL+YjEUxFUcxHIsYCtwL+Dj/THsDvpDXS3PrwWNNVWqpxFwxQuXA 63 | Yc67Pvcye3z87Ain22rK3u/9Ru/PSPkHlhb3prE7Ryogb2n8ayyU32e3K2yiv+Fh 64 | 0QXQC8BZZUaO0LVFDrQ7PwRJiKVyWy0hpOZByA8CgYAS7MIaqCn/hsXu+/YWN2ld 65 | KOVsm6oUmwTIz4WjxngK+1D+z8XBRSpiV0ubfasbDMIbn4bE+3XiggOTT6LbY7tL 66 | 4rWpI3Sya9R0bIiXw36saNkyKSTqsaY4EZkIUlXTmWBdOprXKiZIEZLpbPv2G3GA 67 | J1wnZw5DbOivoD+UQP7E6QKBgBHSaV74PXw1Uf3LxjW2YuywR6OVMtlN019ZhOBn 68 | vO1yxKCrx5tI6dKOOci1baDzcg9vh6PV/x6LzfGcz/bGyGqGnLpIr6npA/xsm2N4 69 | QHZ5lDwvlM3bqzWRpseLLlJv7mIyq1grR+lRF07ZiUkPPrcN304sxYF4+XrYnecV 70 | tWO3AoGBAKhS8VZaApuIDxBV+xbZRtgBg95K0fi7WjAyPWtBe2SinNtgzop4/SCr 71 | IN9AYTGb5kHkh++BFur/Mhj06m51CQFHsDC+9ZemYHUTA+xAHQBDS25InCSyB+iD 72 | GHqtnqZzjF0xBFnxQbpIhbXUcdMQVP4KACw/XJc2cJ2ja7vAcnwn 73 | -----END RSA PRIVATE KEY-----" > /root/.ssh/id_rsa 74 | chmod 600 /root/.ssh/id_rsa 75 | 76 | echo "spi.mytijian.com,121.40.87.210 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCX29Qo7wRQLo6nTggBnX7J9TSka4FfvDlazLKN/lxMEiVMAKkQq5j804165Mp664r01fgqG8egLrVbYBjAZDHVIJF46hh14oRaxjVKUt6+s7SInZ1JByEuqDAXwxHjK7JVkAomIrVu1Wxx41VpozKWiLwuNxNW6rMy/Ybs7ISEAy2zD6JdVKPtSgVE9RndmoJ71AMo3Nxzo88jOvR1l2gSpD6OcJZ1R6LuHAMNsi3AZ92vdZNTxIRSATIUXhgpgcZPftRKzaVn7NfD00ZyW/yvgCKxcMYMK49dNLJVglLl9NrFoECuU9XB6ZMy4TM9XYSkxEZo+lNemOhPjswGSkaF" > /root/.ssh/known_hosts 77 | chmod 600 /root/.ssh/known_hosts 78 | } 79 | 80 | Ssh_GenKey() { 81 | echo "按三下回车。。。。。" 82 | ssh-keygen 83 | } 84 | 85 | Ssh_Tunnel() { 86 | echo "输入密码。。。。。" 87 | ssh-copy-id ubuntu@spi.mytijian.com 88 | echo "输入yes" 89 | ssh ubuntu@spi.mytijian.com "ls" 90 | echo "ok!!!" 91 | } 92 | 93 | Ssh_Tunnel_Auto() { 94 | /usr/bin/autossh -M 30004 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R spi.mytijian.com:30003:localhost:22 ubuntu@spi.mytijian.com 95 | if grep autossh /etc/rc.local;then 96 | : 97 | else 98 | echo '/usr/bin/autossh -M 30004 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R spi.mytijian.com:30003:localhost:22 ubuntu@spi.mytijian.com' >> /etc/rc.local 99 | fi 100 | } 101 | 102 | Check_Crontab() { 103 | ss=`ps aux |grep autossh |grep -v grep |awk '{print $NF}'` 104 | if [ X$? = X0 ];then 105 | : 106 | else 107 | Ssh_Tunnel 108 | fi 109 | } 110 | 111 | Crontab_Add() { 112 | spath=`pwd` 113 | cp -rf $spath/ssh.sh /root/.ssh/ 114 | if grep "ssh.sh" /var/spool/cron/root ;then 115 | : 116 | else 117 | echo "*/1 * * * * /bin/bash /root/.ssh/ssh.sh check" >> /var/spool/cron/root 118 | fi 119 | } 120 | 121 | if [ X$1 = Xcheck ];then 122 | Ssh_Tunnel_Auto 123 | else 124 | Install_Autossh 125 | Ssh_GenKey_Auto 126 | Ssh_Tunnel_Auto 127 | Crontab_Add 128 | fi 129 | 130 | -------------------------------------------------------------------------------- /mytijian/monitor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: monitor.sh 4 | # Create Date: 2015-12-25 10:17 5 | # Function: 6 | #***************************************************************# 7 | xtomcat=`ps aux |grep tomcat |grep -v grep` 8 | if [ -z $xtomcat ];then 9 | /opt/apache-tomcat-8.0.26/bin/startup.sh 10 | else 11 | : 12 | fi 13 | -------------------------------------------------------------------------------- /mytijian/uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: uninstall.sh 4 | # Function: 5 | #***************************************************************# 6 | Uninstall_Tomcat(){ 7 | echo "begin uninstall tomcat...." 8 | PID=`ps -ef|grep tomcat | grep -v grep | awk '{print $2}'` 9 | echo $PID 10 | [ ! -z $PID ]&&kill -9 $PID 11 | rm -rf /opt/tomcat 12 | rm -rf /opt/apache-tomcat-8.0.26 13 | } 14 | 15 | Uninstall_Jdk() { 16 | echo "begin uninstall jdk......" 17 | rm -rf /usr/local/jdk 18 | rm -rf /usr/local/jdk1.8.0_45 19 | sed -i /'export JAVA_HOME='/d /etc/profile 20 | sed -i "s#export\ PATH=\$JAVA_HOME/bin:#export\ PATH=#g" /etc/profile 21 | sed -i /'export CLASSPATH=.:$JAVA_HOME'/d /etc/profile 22 | } 23 | 24 | Uninstall_Mediator() { 25 | rm -rf /tmp/mediator-agent 26 | PID=`ps -ef|grep tomcat | grep -v grep | awk '{print $2}'` 27 | echo $PID 28 | [ ! -z $PID ]&&kill -9 $PID 29 | mv /opt/apache-tomcat-8.0.26/webapps/mediator-agent /tmp 30 | } 31 | 32 | if [ X$1 = Xjdk ];then 33 | Uninstall_Jdk 34 | elif [ X$1 = Xtomcat ];then 35 | Uninstall_Tomcat 36 | elif [ X$1 = Xall ];then 37 | Uninstall_Tomcat 38 | Uninstall_Jdk 39 | else 40 | Uninstall_Mediator 41 | fi 42 | -------------------------------------------------------------------------------- /mytijian/upgrade.sh: -------------------------------------------------------------------------------- 1 | set -x 2 | #!/bin/bash 3 | #1,拷贝文件到/tmp/diff目录中 4 | #2,进行比较,将不同的文件拷贝到upgrade目录中,并记录文件名及路径,创建linabc、winabc 5 | 6 | directory_name="$1" 7 | new_version="$2" 8 | #tmp directory 9 | diffpath="/tmp/diff" 10 | #war file 11 | new_war_path="/opt/mediator/mediator/mediator-agent-"$new_version".war" 12 | old_zip_path="/opt/mediator/public/configfile/hospital/$directory_name/mediator-agent.zip" 13 | control_war_path="/opt/mediator/mediator/control-"$new_version".war" 14 | #diff file save path 15 | upgrade_path="$diffpath/upgrade/mediator-agent" 16 | control_upgrade_path="$diffpath/upgrade/control" 17 | #txt file 18 | linabc="$upgrade_path/linabc.txt" 19 | winabc="$upgrade_path/winabc.txt" 20 | control_linabc="$control_upgrade_path/linabc.txt" 21 | control_winabc="$control_upgrade_path/winabc.txt" 22 | 23 | #del txt file 24 | del_linabc="$upgrade_path/del_linabc.txt" 25 | del_winabc="$upgrade_path/del_winabc.txt" 26 | del_control_linabc="$control_upgrade_path/del_linabc.txt" 27 | del_control_winabc="$control_upgrade_path/del_winabc.txt" 28 | 29 | save_upgrade="/opt/mediator/public/configfile/hospital/$directory_name" 30 | 31 | diff_funtion() { 32 | if [ -f $new_war_path ];then 33 | : 34 | else 35 | echo "new version mediator-agent isn't exist!!" 36 | exit 1 37 | fi 38 | if [ -f $old_zip_path ];then 39 | : 40 | else 41 | echo "old version mediator-agent isn't exist!!" 42 | fi 43 | if [ -d /tmp/diff ];then 44 | rm -rf /tmp/diff/* 45 | else 46 | mkdir /tmp/diff 47 | fi 48 | if [ -d $upgrade_path ];then 49 | : 50 | else 51 | mkdir -p $upgrade_path 52 | fi 53 | if [ -d $control_upgrade_path ];then 54 | : 55 | else 56 | mkdir -p $control_upgrade_path 57 | fi 58 | } 59 | 60 | copy_file_to_diff() { 61 | diff_funtion 62 | #agent war 63 | unzip $new_war_path -d /tmp/diff/mediator-agent 64 | #unzip his zip 65 | source /opt/mediator/public/configfile/hospital/$directory_name/configwget.sh 66 | unzip /opt/mediator/mediator/probe/$mediator_probe -d $diffpath/mediator-agent/ 67 | mv $diffpath/mediator-agent/mediator-probe*/* $diffpath/mediator-agent/WEB-INF/lib/ 68 | rm -rf $diffpath/mediator-agent/mediator-probe* 69 | 70 | #old_zip 71 | unzip $old_zip_path -d /tmp/diff/mediator-agent-old 72 | rm -rf /tmp/diff/mediator-agent-old/*.exe 73 | rm -rf /tmp/diff/mediator-agent-old/*.bat 74 | mv /tmp/diff/mediator-agent-old/mediator-agent/* /tmp/diff/mediator-agent-old/ 75 | rm -rf /tmp/diff/mediator-agent-old/mediator-agent 76 | 77 | #control war 78 | unzip $control_war_path -d /tmp/diff/control 79 | #old_zip 80 | mv /tmp/diff/mediator-agent-old/control /tmp/diff/control-old 81 | } 82 | 83 | diff_directory_file() { 84 | echo "create new_version ............." 85 | find $diffpath/mediator-agent/ -type f > /tmp/diff/new_version 86 | echo "create old_version.............." 87 | find $diffpath/mediator-agent-old/ -type f > /tmp/diff/old_version 88 | echo "create ok!!!" 89 | 90 | echo "create new_version_control ............." 91 | find $diffpath/control/ -type f > /tmp/diff/new_version_control 92 | echo "create old_version_control.............." 93 | find $diffpath/control-old/ -type f > /tmp/diff/old_version_control 94 | echo "create control ok!!!" 95 | } 96 | 97 | copy_config_file() { 98 | configfilepath="/opt/mediator/public/configfile/hospital/$directory_name" 99 | #cp -rf $configfilepath/*.properties $upgrade_path 100 | for i in `ls $configfilepath |grep .properties` 101 | do 102 | con=`echo $i | grep -o '^.......'` 103 | sed -i "/$i/d" $control_upgrade_path/*.txt 104 | sed -i "/$i/d" $upgrade_path/*.txt 105 | if [ X$con = Xcontrol ];then 106 | if [ X$i = Xcontrol.config.properties ];then 107 | cp $configfilepath/$i $control_upgrade_path/config.properties 108 | echo "config.properties webapps/control/WEB-INF/classes/config.properties" >> $control_upgrade_path/winabc.txt 109 | echo "config.properties webapps/control/WEB-INF/classes/config.properties" >> $control_upgrade_path/linabc.txt 110 | else 111 | cp $configfilepath/$i $control_upgrade_path 112 | echo "$i webapps/control/WEB-INF/classes/$i" >> $control_upgrade_path/winabc.txt 113 | echo "$i webapps/control/WEB-INF/classes/$i" >> $control_upgrade_path/linabc.txt 114 | fi 115 | else 116 | cp $configfilepath/$i $upgrade_path 117 | echo "$i webapps/mediator-agent/WEB-INF/classes/$i" >> $upgrade_path/winabc.txt 118 | echo "$i webapps/mediator-agent/WEB-INF/classes/$i" >> $upgrade_path/linabc.txt 119 | fi 120 | done 121 | sed -i 's/$/\r/' $upgrade_path/winabc.txt 122 | sed -i 's/$/\r/' $control_upgrade_path/winabc.txt 123 | } 124 | 125 | 126 | loop_file() { 127 | #\$1 is new war version file 128 | #\$2 is old war version file 129 | for i in `cat $1` 130 | do 131 | echo "=====================$i==========================" 132 | new_filename=`echo $i |awk -F'/' '{print $NF}'` 133 | new_filepath=`echo $i |sed "s/pom.xml//g" |sed "s/\/tmp\/diff//g"` #不知道当时是怎么写的,不知道被谁改了,这地方貌似没什么意义 134 | 135 | echo "new_filename=$new_filename" 136 | echo "new_filepath=$new_filepath" 137 | 138 | old_filepath=`cat $2 |grep $new_filename` 139 | echo $old_filepath 140 | if [ -n $old_filepath ];then 141 | diff $i $old_filepath 142 | if [ X$? = X0 ];then 143 | : 144 | else 145 | cp $i $3 146 | lss=`echo $3 | grep -o '.......$'` 147 | if [ X$lss = Xcontrol ];then 148 | echo "$new_filename $i" >> $control_linabc 149 | echo "$new_filename $i" >> $control_winabc 150 | else 151 | echo "$new_filename $i" >> $linabc 152 | echo "$new_filename $i" >> $winabc 153 | fi 154 | fi 155 | else 156 | : 157 | fi 158 | done 159 | } 160 | 161 | 162 | loop_delete_file() { 163 | #\$1 is new war version file 164 | #\$2 is old war version file 165 | for i in `cat $2` 166 | do 167 | echo "=====================$i==========================" 168 | new_filename=`echo $i |awk -F'/' '{print $NF}'` 169 | new_filepath=`echo $i |sed "s/pom.xml//g" |sed "s/\/tmp\/diff//g"` #不知道当时是怎么写的,不知道被谁改了,这地方貌似没什么意义 170 | 171 | echo "new_filename=$new_filename" 172 | echo "new_filepath=$new_filepath" 173 | 174 | old_filepath=`cat $1 |grep $new_filename` 175 | echo $old_filepath 176 | if [ -z $old_filepath ];then 177 | lss=`echo $3 | grep -o '.......$'` 178 | if [ X$lss = Xcontrol ];then 179 | echo "$i" >> $del_control_linabc 180 | echo "$i" >> $del_control_winabc 181 | else 182 | echo "$i" >> $del_linabc 183 | echo "$i" >> $del_winabc 184 | fi 185 | else 186 | : 187 | fi 188 | done 189 | sed -i "s/-old//g" $del_control_linabc $del_control_winabc $del_linabc $del_winabc 190 | } 191 | 192 | last_create_resoult(){ 193 | copy_config_file 194 | 195 | sed -i "s/\/tmp\/diff/webapps/g" $diffpath/upgrade/control/*.txt 196 | sed -i "s/\/tmp\/diff/webapps/g" $diffpath/upgrade/mediator-agent/*.txt 197 | 198 | sed -i 's/$/\r/' $upgrade_path/*win*.txt 199 | sed -i 's/$/\r/' $control_upgrade_path/*win*.txt 200 | 201 | sed -i 's/\//\\/g' $upgrade_path/*win*.txt $control_upgrade_path/*win*.txt 202 | 203 | cd $diffpath/upgrade 204 | zip -r upgrade.zip * 205 | cp -rf $diffpath/upgrade/upgrade.zip $save_upgrade 206 | #rm -rf $save_upgrade/mediator-agent-last-version.zip 207 | mv $old_zip_path $save_upgrade/mediator-agent-last-version.zip 208 | #/bin/bash /opt/mediator/shell/makezip.sh windows $directory_name 209 | echo "pls command the makezip.sh shell to create new zip file!!" 210 | } 211 | copy_file_to_diff 212 | diff_directory_file 213 | loop_file "$diffpath/new_version" "$diffpath/old_version" $upgrade_path 214 | loop_file "$diffpath/new_version_control" "$diffpath/old_version_control" $control_upgrade_path 215 | loop_delete_file "$diffpath/new_version" "$diffpath/old_version" $upgrade_path 216 | loop_delete_file "$diffpath/new_version_control" "$diffpath/old_version_control" $control_upgrade_path 217 | last_create_resoult 218 | set + 219 | -------------------------------------------------------------------------------- /performance/linux_centos6_base_web.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: linux_centos6_base.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-07-13 11:38 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-07-13 15:38 8 | # Function:web系统基础优化 9 | #***************************************************************# 10 | set -x 11 | function deterpm() 12 | { 13 | rpm -qa |grep $1 14 | } 15 | 16 | function Decide() 17 | { 18 | if [ $1 = 0 ];then 19 | : 20 | else 21 | $2 22 | fi 23 | } 24 | 25 | function ntpconfig() 26 | { 27 | /etc/init.d/ntpd stop 28 | /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1 29 | /etc/init.d/ntpd start 30 | echo "*/5 * * * * /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1" >> /var/spool/cron/root 31 | } 32 | #source 33 | wget -c http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS6-Base-163.repo 34 | yum clean metadata 35 | nohup yum makecache & 36 | 37 | #ntp 38 | cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 39 | hwclock --systohc --localtime 40 | 41 | deterpm ntp 42 | Decide $? "yum install ntp -y" 43 | 44 | ntpconfig 45 | 46 | #sysctl.conf 47 | function sysctlconfig() 48 | { 49 | cat >> /etc/sysctl.conf <> /etc/modprobe.conf 88 | echo "alias ipv6 off" >> /etc/modprobe.conf 89 | /sbin/chkconfig ip6tables off 90 | 91 | #open file limits.conf 92 | echo "* soft nofile 65535 93 | * hard nofile 65535 94 | * soft nproc 65535 95 | * hard nproc 65535" >> /etc/security/limits.conf 96 | 97 | set +x 98 | -------------------------------------------------------------------------------- /pymm.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: UTF-8 -*- 3 | #****************************************************************# 4 | # ScriptName: mysql.py 5 | # Author: 云尘(jimmy) 6 | # Create Date: 2016-03-16 17:48 7 | # Modify Author: liujmsunits@hotmail.com 8 | # Modify Date: 2016-03-22 01:02 9 | # Function: 10 | #***************************************************************# 11 | import pymysql 12 | import sys 13 | reload(sys) 14 | sys.setdefaultencoding('utf-8') 15 | 16 | class MYSQL: 17 | """ 18 | 对pymssql的简单封装 19 | 使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启 20 | 用法: 21 | """ 22 | def __init__(self,host,user,pwd,db): 23 | self.host = host 24 | self.user = user 25 | self.pwd = pwd 26 | self.db = db 27 | 28 | def __GetConnect(self): 29 | """ 30 | 得到连接信息 31 | 返回: conn.cursor() 32 | """ 33 | if not self.db: 34 | raise(NameError,"没有设置数据库信息") 35 | self.conn = pymysql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8") 36 | cur = self.conn.cursor() 37 | if not cur: 38 | raise(NameError,"连接数据库失败") 39 | else: 40 | return cur 41 | 42 | def ExecQuery(self,sql): 43 | """ 44 | 执行查询语句 45 | 返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 46 | 调用示例: 47 | ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics") 48 | resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser") 49 | for (id,NickName) in resList: 50 | print str(id),NickName 51 | """ 52 | cur = self.__GetConnect() 53 | cur.execute(sql) 54 | resList = cur.fetchall() 55 | 56 | #查询完毕后必须关闭连接 57 | self.conn.close() 58 | return resList 59 | 60 | def ExecNonQuery(self,sql): 61 | """ 62 | 执行非查询语句 63 | 调用示例: 64 | cur = self.__GetConnect() 65 | cur.execute(sql) 66 | self.conn.commit() 67 | self.conn.close() 68 | """ 69 | cur = self.__GetConnect() 70 | cur.execute(sql) 71 | self.conn.commit() 72 | self.conn.close() 73 | 74 | def main(): 75 | 76 | ## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics") 77 | ## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 78 | ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')") 79 | 80 | ms = MYSQL(host="192.168.1.28",user="root",pwd="hadoop",db="sqoop") 81 | #f = open(sys.argv[1],'r') 82 | #print sys.argv[1] 83 | #mssql = f.read() 84 | mssql = sys.argv[1] 85 | if sys.argv[2] == 's': 86 | resList = ms.ExecQuery(mssql) 87 | #for (cc,) in resList: 88 | # print cc 89 | #print resList[0] 90 | #print resList 91 | #print type(resList) 92 | s1 = resList[0] 93 | s2 = list(s1) 94 | print s2 95 | s3 = ' '.join(str(v) for v in s2) 96 | print s3 97 | #f = open('/root/tmp','w') 98 | 99 | elif sys.argv[2] == 'o': 100 | ms.ExecNonQuery(mssql) 101 | else: 102 | print 'argv[2] input error!! select orther' 103 | 104 | if __name__ == '__main__': 105 | main() 106 | -------------------------------------------------------------------------------- /rsync_inotify/rsinotify-gh.sh: -------------------------------------------------------------------------------- 1 | #change inotify variables 2 | 3 | echo 81920 >/proc/sys/fs/inotify/max_user_watches 4 | echo 12800 >/proc/sys/fs/inotify/max_user_instances 5 | echo 163840 >/proc/sys/fs/inotify/max_queued_events 6 | 7 | #variables 8 | current_date=$(date +%Y%m%d_%H%M%S) 9 | source_path=/home/bank/gh 10 | log_file=/var/log/rsync_client.log 11 | #rsync 12 | rsync_server=120.26.122.216 13 | rsync_user=root 14 | rsync_pwd=/etc/secrets 15 | rsync_module=ftpbank 16 | #INOTIFY_EXCLUDE='(.*/*\.log|.*/*\.swp)$|^/tmp/src/mail/(2014|20.*/.*che.*)' 17 | #RSYNC_EXCLUDE='/etc/rsyncd.d/rsync_exclude.lst' 18 | #rsync client pwd check 19 | if [ ! -e ${rsync_pwd} ];then 20 | echo -e "rsync client passwod file ${rsync_pwd} does not exist!" 21 | exit 0 22 | fi 23 | #inotify_function 24 | inotify_fun(){ 25 | /usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' \ 26 | -e modify,delete,create,move,attrib ${source_path} \ 27 | | while read file 28 | do 29 | #/usr/bin/rsync -auvrtzopgP --exclude-from=${RSYNC_EXCLUDE} --progress --bwlimit=200 --password-file=${rsync_pwd} ${source_path} ${rsync_user}@${rsync_server}::${rsync_module} 30 | /usr/bin/rsync -auvrtzopgP --progress --password-file=${rsync_pwd} ${source_path} ${rsync_user}@${rsync_server}::${rsync_module} 31 | sleep 100 32 | /bin/mv ${source_path}/*.txt ${source_path}/old/ 33 | done 34 | } 35 | #inotify log 36 | inotify_fun >> ${log_file} 2>&1 & 37 | -------------------------------------------------------------------------------- /rsync_inotify/rsyncd/rs.sh: -------------------------------------------------------------------------------- 1 | mkdir /etc/rsyncd 2 | touch /etc/rsyncd/rsyncd.{conf,secrets,motd} 3 | 4 | chmod 0600 /etc/rsyncd/rsyncd.secrets 5 | 6 | 7 | echo " 8 | pid file = /tmp/rsync.pid 9 | port = 873 10 | address = 120.26.122.216 11 | uid = root 12 | gid = root 13 | use chroot = no 14 | read only = no 15 | write only = no 16 | max connections = 5 17 | log file = /tmp/rsyncd.log 18 | transfer logging = yes 19 | log format = %t %a %m %f %b 20 | syslog facility = local3 21 | timeout = 300 22 | [html] 23 | path=/home/goujia/project/html 24 | list=yes 25 | ignore errors 26 | auth users = root 27 | secrets file=/etc/rsyncd/rsyncd.secrets 28 | comment = 116 29 | exclude = log 30 | [web] 31 | path=/home/goujia/project/web 32 | list=yes 33 | ignore errors 34 | auth users = root 35 | secrets file=/etc/rsyncd/rsyncd.secrets 36 | comment = 116 37 | exclude = log 38 | " >/etc/rsyncd/rsyncd.conf 39 | 40 | 41 | -------------------------------------------------------------------------------- /rsync_inotify/rsyncd/startrs.sh: -------------------------------------------------------------------------------- 1 | rm -rf /tmp/rsync* 2 | nohup /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf 3 | -------------------------------------------------------------------------------- /spilt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: spilt.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-05-20 18:59 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-20 19:53 8 | # Function: 9 | #***************************************************************# 10 | for i in `cat $1` 11 | do 12 | # echo ${i:0:2}:${i:2:2}:${i:4:2}:${i:6:2}:${i:8:2}:${i:10:2}:${i:12:2}:${i:14:2} 13 | echo $i | sed 's/./&:/2;s/./&:/5;s/./&:/8;s/./&:/11;s/./&:/14;s/./&:/17;s/./&:/20' 14 | done 15 | 16 | 17 | -------------------------------------------------------------------------------- /ver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: ver.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-12-15 22:28 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-12-15 22:28 8 | # Function: 9 | #***************************************************************# 10 | #当前目录 11 | spwd=`pwd` 12 | #需要监测的文件路径 13 | filepath=$spwd/file 14 | #tomcat pid 15 | PID=`ps -ef|grep tomcat |grep $spwd| grep -v grep | awk '{print $2}'` 16 | 17 | function CopyFile(){ 18 | for i in `cat $spwd/list` 19 | do 20 | a=`echo $i |awk '{print $1}'` 21 | b=`echo $i |awk '{print $2}'` 22 | echo $a 23 | echo $b 24 | #cp $a $b 25 | done 26 | } 27 | 28 | function decidefile(){ 29 | if [ -n $PID ] 30 | then 31 | kill -9 $PID 32 | $spwd/bin/startup.sh 33 | fi 34 | } 35 | 36 | if [ -f $filepath ] 37 | then 38 | CopyFile 39 | decidefile 40 | else 41 | : 42 | fi 43 | -------------------------------------------------------------------------------- /wikijenkins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: wikijenkins.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-12-21 14:18 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-12-21 14:18 8 | # Function: 9 | #***************************************************************# 10 | rootpath="/opt/www/wiki/data/pages" 11 | 12 | Create_Area() { 13 | #$1:地区英文名称 $2:地区中文名称 14 | cd $rootpath 15 | sudo cp -r 1template $1 16 | sudo echo "[[$1:index|$2]\\" >> businesslink/index.txt 17 | } 18 | 19 | Create_Hospital() { 20 | #$1:医院英文名称 $2:医院中文名称 $3:地区中文名称 21 | cd $rootpath 22 | sudo cp -r 2template $1 23 | echo "[[$1:index|$2]\\" >> $3/index.txt 24 | } 25 | 26 | if [ X$1 = Xarea ];then 27 | Create_Area $2 $3 28 | elif [ X$1 = Xhospital ] 29 | Create_Hospital $2 $3 $4 30 | else 31 | echo "you input args error!!!" 32 | fi 33 | -------------------------------------------------------------------------------- /xtrabackupnew/innobackupex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: innobackupex.sh 4 | # Author: 云尘(jimmy) 5 | # Create Date: 2015-12-20 19:22 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-12-20 19:22 8 | # Function: 9 | #***************************************************************# 10 | #备份总目录 11 | backup_path="/root/mysqlbackup" 12 | #备份文件名称 13 | backup_filename=`date +%Y%m%d%H` 14 | #备份前一天的文件名称 15 | yesteday_filename=`date -d '1 days ago' +%Y%m%d` 16 | #备份子目录名称 17 | backup_directory=`date +%Y%m%d` 18 | #全量备份名称 19 | full_backup_name="full_backup" 20 | #增量备份名称 21 | incremental_backup_name="incremental_$backup_filename" 22 | #mysql数据存放目录 23 | mysql_datadir="/data/mysql" 24 | #mysql启动和停止 25 | mysqld_start="service mysqld start" 26 | mysqld_stop="service mysqld stop" 27 | #mysql用户 28 | mysql_user="root" 29 | #mysql密码 30 | mysql_passwd="xxxxxxx" 31 | #mysql默认配置文件 32 | default_file="/etc/my.cnf" 33 | #备份时使用的内存,数据库在G级别以上可以加快备份速度 34 | use_memory="1G" 35 | 36 | #stop mysql and clear datadir 37 | Stop_Mysql() { 38 | #stop mysql 39 | $mysqld_stop 40 | mpid=`netstat -tunlp |grep 3306 |awk '{print $NF}'|cut -d'/' -f1` 41 | if [ -n $mpid ];then 42 | kill -9 $mpid 43 | else 44 | : 45 | fi 46 | #bakcup datadir 47 | if [ -d $backup_path/datadir ];then 48 | rm -rf $backup_path/datadir/* 49 | mv -f $mysql_datadir $backup_path/datadir 50 | else 51 | mkdir $backup_path/datadir 52 | mv -f $mysql_datadir $backup_path/datadir 53 | fi 54 | 55 | #clear datadir 56 | rm -rf $mysql_datadir 57 | mkdir $mysql_datadir 58 | 59 | } 60 | 61 | #还原时数据库数据清理 62 | Mysql_Data_Update() { 63 | echo "clear data....." 64 | cat $spwd/sql.ini | while read i 65 | do 66 | mysql -u$mysql_user -p$mysql_passwd -e "$i" 67 | done 68 | } 69 | 70 | 71 | #压缩前一天的备份,节省空间 72 | Make_Tar_Gz() { 73 | cd $backup_path 74 | if [ -f $yesteday_filename ];then 75 | tar -zcvf $yesteday_filename.tgz $yesteday_filename 76 | fi 77 | } 78 | 79 | #全量备份函数 80 | Full_Backup_Zip() { 81 | Make_Tar_Gz 82 | rm -rf $backup_path/$backup_directory 83 | tmp_path="$backup_path/$backup_directory/$full_backup_name" 84 | mkdir -p $tmp_path 85 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --no-timestamp --use-memory=$use_memory --stream=tar $tmp_path | gzip - > $tmp_path/$backup_filename.tar.gz 86 | } 87 | 88 | Full_Backup() { 89 | rm -rf $backup_path/$backup_directory 90 | tmp_path="$backup_path/$backup_directory" 91 | mkdir -p $tmp_path 92 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --no-timestamp --use-memory=$use_memory $tmp_path/$full_backup_name 93 | } 94 | #全量还原函数 95 | Full_Restore() { 96 | #stop mysql and clear datadir 97 | Stop_Mysql 98 | cd $1 99 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --apply-log $1 100 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --copy-back $1 101 | chown -R mysql:mysql $mysql_datadir 102 | $mysqld_start 103 | #clear data 104 | Mysql_Data_Update 105 | } 106 | 107 | #增量备份 108 | Incremental_Backup() { 109 | cd $backup_path/$backup_directory 110 | rm -rf $backup_filename 111 | countls=`ls -l |grep -v total |wc -l` 112 | lastls=`ls -l |grep -v total | awk '{print $NF}' |tail -2 |head -1` 113 | if [ -d $full_backup_name ];then 114 | : 115 | else 116 | Full_Backup 117 | fi 118 | 119 | if [ $countls = 1 ];then 120 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --no-timestamp --incremental-basedir=$backup_path/$backup_directory/$full_backup_name --incremental $backup_path/$backup_directory/$backup_filename 121 | elif [ $countls -gt 1 ];then 122 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --no-timestamp --incremental-basedir=$backup_path/$backup_directory/$lastls --incremental $backup_path/$backup_directory/$backup_filename 123 | else 124 | echo "当前备份目录有手动创建的文件,这回导致备份失败,请检查并删除!!" 125 | fi 126 | } 127 | 128 | #增量备份还原是调用的函数 129 | Full_Restore_inc() { 130 | #stop mysql and clear datadir 131 | Stop_Mysql 132 | cd $1 133 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --apply-log $1/$full_backup_name 134 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --copy-back $1/$full_backup_name 135 | chown -R mysql:mysql $mysql_datadir 136 | $mysqld_start 137 | } 138 | 139 | #增量备份还原 140 | Incremental_Restore() { 141 | if [ -z $1 ];then 142 | echo "请带参数执行增量备份还原,参数为增量备份目录" 143 | exit 1 144 | fi 145 | #Incremental_Backup 146 | cd $1 147 | if [ -d $full_backup_name ];then 148 | : 149 | else 150 | Full_Backup 151 | fi 152 | basename=`ls -l |grep -v total |awk '{print $NF}' |tail -1` 153 | lastls=`ls -l |grep -v total | awk '{print $NF}' |grep -v $basename` 154 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --apply-log --redo-only $1/$full_backup_name 155 | for i in $lastls 156 | do 157 | innobackupex --defaults-file=$default_file --user=$mysql_user --password=$mysql_passwd --apply-log --redo-only $1/$full_backup_name --incremental-dir=$1/$i 158 | done 159 | Full_Restore_inc $1 160 | #clear data 161 | Mysql_Data_Update 162 | } 163 | 164 | if [ X$1 = XFull_Backup ];then 165 | Full_Backup 166 | elif [ X$1 = XIncremental_Backup ];then 167 | Incremental_Backup 168 | elif [ X$2 = XIncremental_Restore ];then 169 | Incremental_Restore $1 170 | elif [ X$2 = XFull_Restore ];then 171 | Full_Restore $1 172 | else 173 | echo "input error!!" 174 | fi 175 | 176 | 177 | -------------------------------------------------------------------------------- /zonecreate/createzone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: createzone.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-05-24 06:17 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-24 12:53 8 | # Function: 9 | #***************************************************************# 10 | function diff(){ 11 | if [ $1 = $2 ] 12 | then 13 | return 0 14 | else 15 | return 1 16 | fi 17 | } 18 | 19 | function countnum(){ 20 | # numarray=${#domainid[@]} 21 | if [ $numarray = 4 ];then 22 | eval "var1=\${$1[0]}" 23 | eval "var2=\${$1[1]}" 24 | eval "var3=\${$1[2]}" 25 | eval "var4=\${$1[3]}" 26 | elif [ $numarray = 6 ];then 27 | eval "var1=\${$1[0]}" 28 | eval "var2=\${$1[1]}" 29 | eval "var3=\${$1[2]}" 30 | eval "var4=\${$1[3]}" 31 | eval "var5=\${$1[5]}" 32 | eval "var6=\${$1[6]}" 33 | elif [ $numarray = 8 ];then 34 | eval "var1=\${$1[0]}" 35 | eval "var2=\${$1[1]}" 36 | eval "var3=\${$1[2]}" 37 | eval "var4=\${$1[3]}" 38 | eval "var5=\${$1[5]}" 39 | eval "var6=\${$1[6]}" 40 | eval "var7=\${$1[7]}" 41 | eval "var8=\${$1[8]}" 42 | else 43 | echo "pls check the zone2name" 44 | fi 45 | 46 | 47 | } 48 | 49 | function zonecreate(){ 50 | if [ $1 = singlehost ] 51 | then 52 | echo -ne "\033[31;1m==============================${hostname[0]} start======================================\033[0m" 53 | echo " 54 | zonecreate \"$zonename1\",\"${dm2id1[0]}${dm2id1[1]}${dm2id1[2]}${dm2id1[3]}${dm2id1[4]}${dm2id1[5]}\" 55 | cfgadd \"$cfgname1\",\"$zonename1\" 56 | cfgenable \"$cfgname1\"" 57 | echo " 58 | zonecreate \"$zonename2\",\"${dm2id2[0]}${dm2id2[1]}${dm2id2[2]}${dm2id2[3]}${dm2id2[4]}${dm2id2[5]}\" 59 | cfgadd \"$cfgname2\",\"$zonename2\" 60 | cfgenable \"$cfgname2\"" 61 | echo -e "\033[31;1m==============================${hostname[0]} end======================================\033[0m" 62 | elif [ $1 = mutiplehost ] 63 | then 64 | echo " 65 | 66 | 67 | " 68 | else 69 | echo "pls use zonecreate singlehost/mutiplehost" 70 | fi 71 | } 72 | 73 | function array(){ 74 | #Array 75 | domainid=(`cat zone2name |grep $1 |awk '{print $1}'`) 76 | cfgname=(`cat zone2name |grep $1 |awk '{print $2}'`) 77 | hostname=(`cat zone2name |grep $1 |awk '{print $3}'`) 78 | sunname=(`cat zone2name |grep $1 |awk '{print $4}'`) 79 | index=(`cat zone2name |grep $1 |awk '{print $5}'`) 80 | } 81 | 82 | function variable(){ 83 | #variable 84 | zonename1="${hostname[0]}$hname1$hname2"_"${sunname[1]}" 85 | zonename2="${hostname[3]}$hname1$hname2"_"${sunname[3]}" 86 | dm2id1=("${domainid[0]},${index[0]}" "${domainid[1]},${index[1]}") 87 | dm2id2=("${domainid[2]},${index[2]}" "${domainid[3]},${index[3]}") 88 | cfgname1=${cfgname[0]} 89 | cfgname2=${cfgname[3]} 90 | } 91 | 92 | for i in `cat host` 93 | do 94 | array $i 95 | numarray=${#hostname[@]} 96 | if [ $numarray = 4 ];then 97 | #variable 98 | zonename1="${hostname[0]}"_"${sunname[0]}" 99 | zonename2="${hostname[2]}"_"${sunname[2]}" 100 | dm2id1=("${domainid[0]},${index[0]};" "${domainid[1]},${index[1]}") 101 | dm2id2=("${domainid[2]},${index[2]};" "${domainid[3]},${index[3]}") 102 | #add variable to array 103 | # numarray=${#dm2id1[@]} 104 | # echo $numarray 105 | # num=$[numarray-1] 106 | # echo $num 107 | # dm2id1[$num]=${dm2id1[$num]}"" 108 | # dm2id1[$numarray]="88,89" 109 | # echo ${dm2id1[*]} 110 | cfgname1=${cfgname[0]} 111 | cfgname2=${cfgname[2]} 112 | #zonecreate 113 | zonecreate singlehost 114 | elif [ $numarray = 12 ];then 115 | #variable 116 | hname1=`echo ${hostname[0]} |grep -o ".$"` 117 | hname2=`echo ${hostname[1]} |grep -o ".$"` 118 | hname3=`echo ${hostname[2]} |grep -o ".$"` 119 | name=`echo ${hostname[0]} | sed "s/..$//g"` 120 | zonename1="$name$hname1$hname2$hname3"_"${sunname[0]}" 121 | zonename2="$name$hname1$hname2$hname3"_"${sunname[5]}" 122 | dm2id1=("${domainid[0]},${index[0]};" "${domainid[1]},${index[1]};" "${domainid[2]},${index[2]};" "${domainid[3]},${index[3]};" "${domainid[4]},${index[4]};" "${domainid[5]},${index[5]}") 123 | dm2id2=("${domainid[6]},${index[6]};" "${domainid[7]},${index[7]};" "${domainid[8]},${index[8]};" "${domainid[9]},${index[9]};" "${domainid[10]},${index[10]};" "${domainid[11]},${index[11]}") 124 | cfgname1=${cfgname[0]} 125 | cfgname2=${cfgname[5]} 126 | zonecreate singlehost 127 | elif [ $numarray = 8 ];then 128 | #variable 129 | hname1=`echo ${hostname[0]} |grep -o "..$"` 130 | hname2=`echo ${hostname[1]} |grep -o "..$"` 131 | name=`echo ${hostname[0]} |sed "s/..$//g"` 132 | zonename1="$name$hname1$hname2"_"${sunname[0]}" 133 | zonename2="$name$hname1$hname2"_"${sunname[4]}" 134 | dm2id1=("${domainid[0]},${index[0]};" "${domainid[1]},${index[1]};" "${domainid[2]},${index[2]};" "${domainid[3]},${index[3]}") 135 | dm2id2=("${domainid[4]},${index[4]};" "${domainid[5]},${index[5]};" "${domainid[6]},${index[6]};" "${domainid[7]},${index[7]}") 136 | cfgname1=${cfgname[0]} 137 | cfgname2=${cfgname[4]} 138 | zonecreate singlehost 139 | else 140 | echo "pls check zone2name." 141 | 142 | fi 143 | done 144 | -------------------------------------------------------------------------------- /zonecreate/createzone.sh.bak: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #****************************************************************# 3 | # ScriptName: createzone.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-05-24 06:17 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-24 08:35 8 | # Function: 9 | #***************************************************************# 10 | for i in `cat host` 11 | do 12 | domainid=(`cat zone2name |grep zjj |awk '{print $1}'`) 13 | cfgname=(`cat zone2name |grep zjj |awk '{print $2}'`) 14 | hostname=(`cat zone2name |grep zjj |awk '{print $3}'`) 15 | sunname=(`cat zone2name |grep zjj |awk '{print $4}'`) 16 | index=(`cat zone2name |grep zjj |awk '{print $5}'`) 17 | 18 | function sel(){ 19 | eval "var1=\${$1[0]}" 20 | eval "var2=\${$1[1]}" 21 | eval "var3=\${$1[2]}" 22 | eval "var4=\${$1[3]}" 23 | #echo $var1 24 | #echo $var2 25 | #echo $var3 26 | #echo $var4 27 | } 28 | 29 | function diff(){ 30 | if [ $1 = $2 ] 31 | then 32 | return 0 33 | else 34 | return 1 35 | fi 36 | } 37 | 38 | function sameordiff(){ 39 | if [ $? = 0 ] ;then 40 | echo "same" 41 | else 42 | echo "diff" 43 | fi 44 | } 45 | 46 | function zonecreate(){ 47 | if [ $1 = host1 ] 48 | then 49 | echo " 50 | zonecreate \"$zonename1\",\"$domainid1,$index1;$domainid2,$index2\" 51 | cfgadd \"$cfgname1\",\"$zonename1\" 52 | cfgenable \"$cfgname1\"" 53 | elif [ $1 = host2 ] 54 | then 55 | echo " 56 | zonecreate \"$zonename2\",\"$domainid3,$index3;$domainid4,$index4\" 57 | cfgadd \"$cfgname2\",\"$zonename2\" 58 | cfgenable \"$cfgname2\"" 59 | else 60 | echo "pls use zonecreate host1/host2" 61 | fi 62 | } 63 | 64 | #sel domainid 65 | #diff $var1 $var2 66 | #sameordiff 67 | #sel cfgname 68 | #diff $var1 $var2 69 | #sameordiff 70 | #sel hostname 71 | #diff $var1 $var2 72 | #sameordiff 73 | #sel index 74 | #diff $var1 $var2 75 | #sameordiff 76 | sel hostname 77 | diff $var1 $var2 78 | if [ $? = 0 ] 79 | then 80 | hostname1=$var1 81 | hostname2=$var3 82 | else 83 | echo "pls check the hostname" 84 | fi 85 | 86 | sel sunname 87 | diff $var1 $var2 88 | if [ $? = 0 ] 89 | then 90 | sunname1=$var1 91 | sunname2=$var3 92 | else 93 | echo "pls check the sunname" 94 | fi 95 | 96 | zonename1="$hostname1"_"$sunname1" 97 | zonename2="$hostname2"_"$sunname2" 98 | 99 | sel domainid 100 | domainid1=$var1 101 | domainid2=$var2 102 | domainid3=$var3 103 | domainid4=$var4 104 | 105 | sel index 106 | index1=$var1 107 | index2=$var2 108 | index3=$var3 109 | index4=$var4 110 | 111 | sel cfgname 112 | diff $var1 $var2 113 | if [ $? = 0 ] 114 | then 115 | cfgname1=$var1 116 | cfgname2=$var3 117 | else 118 | cfgname1=$var1 119 | cfgname2=$var2 120 | cfgname3=$var3 121 | cfgname4=$var4 122 | fi 123 | 124 | zonecreate host1 125 | zonecreate host2 126 | 127 | done 128 | -------------------------------------------------------------------------------- /zonecreate/host: -------------------------------------------------------------------------------- 1 | pc_zjjajm 2 | pc_zjjapja 3 | pc_zjjarta 4 | -------------------------------------------------------------------------------- /zonecreate/uniq2host.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #****************************************************************# 3 | # ScriptName: uniq2host.sh 4 | # Author: liujmsunits@hotmail.com 5 | # Create Date: 2015-05-24 12:30 6 | # Modify Author: liujmsunits@hotmail.com 7 | # Modify Date: 2015-05-24 12:56 8 | # Function: 9 | #***************************************************************# 10 | cat zone2name |grep pc |awk '{print $3}' |sort |uniq |sed "s/..$//g" |uniq >host 11 | sed -i "s/-/_/g" zone2name host 12 | -------------------------------------------------------------------------------- /zonecreate/zone2name: -------------------------------------------------------------------------------- 1 | dmid cfgname hostname sunname index 2 | 76 IBMBJDS8K pc_zjjajm01 P9500_97488 8 3 | 76 IBMBJDS8K pc_zjjajm02 P9500_97488 9 4 | 76 IBMBJDS8K pc_zjjajm03 P9500_97488 10 5 | 75 IBMBJDS8K pc_zjjajm01 P9500_97488 209 6 | 75 IBMBJDS8K pc_zjjajm02 P9500_97488 210 7 | 75 IBMBJDS8K pc_zjjajm03 P9500_97488 211 8 | 76 IBMBJDS8K pc_zjjajm01 P9500_97488 8 9 | 76 IBMBJDS8K pc_zjjajm02 P9500_97488 9 10 | 76 IBMBJDS8K pc_zjjajm03 P9500_97488 10 11 | 75 IBMBJDS8K pc_zjjajm01 P9500_97488 145 12 | 75 IBMBJDS8K pc_zjjajm02 P9500_97488 146 13 | 75 IBMBJDS8K pc_zjjajm03 P9500_97488 147 14 | 76 IBMBJDS8K pc_zjjapja01 P9500_97488 20 15 | 76 IBMBJDS8K pc_zjjapja02 P9500_97488 21 16 | 75 IBMBJDS8K pc_zjjapja01 P9500_97488 213 17 | 75 IBMBJDS8K pc_zjjapja02 P9500_97488 215 18 | 76 IBMBJDS8K pc_zjjapja01 P9500_97488 20 19 | 76 IBMBJDS8K pc_zjjapja02 P9500_97488 21 20 | 75 IBMBJDS8K pc_zjjapja01 P9500_97488 149 21 | 75 IBMBJDS8K pc_zjjapja02 P9500_97488 151 22 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 23 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 208 24 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 25 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 144 26 | 27 | -------------------------------------------------------------------------------- /zonecreate/zone2name.mutiple: -------------------------------------------------------------------------------- 1 | dmid cfgname hostname sunname index 2 | 76 IBMBJDS8K pc_zjjajm01 P9500_97488 8 3 | 76 IBMBJDS8K pc_zjjajm02 P9500_97488 9 4 | 76 IBMBJDS8K pc_zjjajm03 P9500_97488 10 5 | 75 IBMBJDS8K pc_zjjajm01 P9500_97488 209 6 | 75 IBMBJDS8K pc_zjjajm02 P9500_97488 210 7 | 75 IBMBJDS8K pc_zjjajm03 P9500_97488 211 8 | 76 IBMBJDS8K pc_zjjajm01 P9500_97488 8 9 | 76 IBMBJDS8K pc_zjjajm02 P9500_97488 9 10 | 76 IBMBJDS8K pc_zjjajm03 P9500_97488 10 11 | 75 IBMBJDS8K pc_zjjajm01 P9500_97488 145 12 | 75 IBMBJDS8K pc_zjjajm02 P9500_97488 146 13 | 75 IBMBJDS8K pc_zjjajm03 P9500_97488 147 14 | 76 IBMBJDS8K pc_zjjapja01 P9500_97488 20 15 | 76 IBMBJDS8K pc_zjjapja02 P9500_97488 21 16 | 75 IBMBJDS8K pc_zjjapja01 P9500_97488 213 17 | 75 IBMBJDS8K pc_zjjapja02 P9500_97488 215 18 | 76 IBMBJDS8K pc_zjjapja01 P9500_97488 20 19 | 76 IBMBJDS8K pc_zjjapja02 P9500_97488 21 20 | 75 IBMBJDS8K pc_zjjapja01 P9500_97488 149 21 | 75 IBMBJDS8K pc_zjjapja02 P9500_97488 151 22 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 23 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 208 24 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 25 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 144 26 | 27 | -------------------------------------------------------------------------------- /zonecreate/zone2name.singlebinjiang: -------------------------------------------------------------------------------- 1 | dmid cfgname hostname sunname index 2 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 3 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 208 4 | 76 IBMBJDS8K pc_zjjarta01 P9500_97488 4 5 | 75 IBMBJDS8K pc_zjjarta01 P9500_97488 144 6 | 76 IBMBJDS8K pc_zjjafsa01 P9500_97488 5 7 | 75 IBMBJDS8K pc_zjjafsa01 P9500_97488 209 8 | 76 IBMBJDS8K pc_zjjafsa01 P9500_97488 5 9 | 75 IBMBJDS8K pc_zjjafsa01 P9500_97488 145 10 | 76 IBMBJDS8K pc_zjjausra01 P9500_97488 6 11 | 75 IBMBJDS8K pc_zjjausra01 P9500_97488 212 12 | 76 IBMBJDS8K pc_zjjausra01 P9500_97488 6 13 | 75 IBMBJDS8K pc_zjjausra01 P9500_97488 148 14 | 15 | --------------------------------------------------------------------------------