<code>#!/bin/sh </code>
<code>if</code> <code>[ </code><code>"$#"</code> <code>-</code><code>ne</code> <code>"1"</code> <code>]; </code><code>then</code>
<code> </code><code>echo</code> <code>"usage: $0 <svn_url>"</code>
<code> </code><code>exit</code> <code>1</code>
<code>fi</code>
<code>release_v=$(</code><code>date</code> <code>+%Y%m%d) </code>
<code>svn_user=</code><code>"deploy"</code>
<code>svn_passwd=“*******” </code>
<code>svn_url=$1 </code>
<code>target_path=</code><code>"res"</code>
<code>svn checkout --non-interactive --trust-server-cert --username </code><code>"${svn_user}"</code> <code>--password </code><code>"${svn_passwd}"</code> <code>"${svn_url}"</code> <code>"${target_path}"</code>
<code>mkdir</code> <code>$release_v </code>
<code>mv</code> <code>res $release_v </code>
<code>cp</code> <code>crossdomain.xml $release_v</code>
<code>#!/bin/sh</code>
<code>if</code> <code>[[ $UID -</code><code>ne</code> <code>0 ]]; </code><code>then</code>
<code> </code><code>echo</code> <code>"You must run as root"</code>
<code> </code><code>exit</code>
<code>fi</code>
<code>localtime=`</code><code>date</code> <code>+%Y%m%d_%H%M`</code>
<code>backup_server_name=s1</code>
<code>port=($(</code><code>netstat</code> <code>-lntp | </code><code>grep</code> <code>redis-server | </code><code>awk</code> <code>'{print $4}'</code> <code>| </code><code>awk</code> <code>'{split($0,ports,":");print ports[length(ports)]}'</code> <code>| </code><code>sort</code> <code>| </code><code>uniq</code><code>))</code>
<code>num=${</code><code>#port[@]}</code>
<code>backup_file_name_6379=redis_${backup_server_name}_6379_${localtime}.</code><code>tar</code><code>.gz</code>
<code>backup_file_name_6380=redis_${backup_server_name}_6380_${localtime}.</code><code>tar</code><code>.gz</code>
<code>backup_path=</code><code>/data/backup/redis/local</code>
<code>if</code> <code>[[ $num -</code><code>eq</code> <code>0 ]];</code><code>then</code>
<code> </code><code>echo</code> <code>-e </code><code>"n33[40;31m No redis server is running33[0mn"</code>
<code>#压缩</code>
<code>for</code> <code>i </code><code>in</code> <code>${port[@]};</code><code>do</code>
<code> </code><code>if</code> <code>[ ${i} -</code><code>eq</code> <code>6379 ]; </code><code>then</code>
<code> </code><code>cd</code> <code>/data/redis/var</code>
<code> </code><code>tar</code> <code>czvf ${backup_file_name_6379} dump.rdb</code>
<code> </code><code>elif</code> <code>[ ${i} -</code><code>eq</code> <code>6380 ]; </code><code>then</code>
<code> </code><code>cd</code> <code>/data/redis/var-6380</code>
<code> </code><code>tar</code> <code>czvf ${backup_file_name_6380} dump.rdb</code>
<code> </code><code>else</code>
<code> </code><code>exit</code> <code>1</code>
<code> </code><code>fi</code>
<code>done</code>
<code>#移动</code>
<code>if</code> <code>[ ! -d ${backup_path} ]; </code><code>then</code>
<code> </code><code>mkdir</code> <code>-p ${backup_path}</code>
<code> </code><code>mv</code> <code>/data/redis/var/</code><code>${backup_file_name_6379} ${backup_path}</code>
<code> </code><code>if</code> <code>[ ${i} -</code><code>eq</code> <code>6380 ];</code><code>then</code>
<code> </code><code>mv</code> <code>/data/redis/var-6380/</code><code>${backup_file_name_6380} ${backup_path}</code>
<code>#同步</code>
<code>#rsync -avIz $backup_path/*.tar.gz 192.168.1.9:/data/s1_server/redis/s1/</code>
<code>#清理</code>
<code>find</code> <code>${backup_path}/ -</code><code>type</code> <code>f -name </code><code>"*.tar.gz"</code> <code>-ctime +30 -</code><code>exec</code> <code>rm</code> <code>-rf {} ;</code>
<code>#</code>
<code># php-fpm - this script starts and stops the php-fpm daemin</code>
<code># chkconfig: - 85 15</code>
<code># processname: php-fpm</code>
<code># config: /usr/local/php/etc/php-fpm.conf</code>
<code> </code>
<code>set</code> <code>-e</code>
<code>#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin</code>
<code>DESC=</code><code>"php-fpm daemon"</code>
<code>NAME=php-fpm</code>
<code>DAEMON=</code><code>/usr/local/php/sbin/</code><code>$NAME </code><code>#这里设成自己的目录</code>
<code>CONFIGFILE=</code><code>/usr/local/php/etc/php-fpm</code><code>.conf </code><code>#这里设成自己的目录</code>
<code>PIDFILE=</code><code>/var/run/</code><code>$NAME.pid </code><code>#这里设成自己的目录</code>
<code>SCRIPTNAME=</code><code>/etc/init</code><code>.d/$NAME </code><code>#这里设成自己的目录</code>
<code># If the daemon file is not found, terminate the script.</code>
<code>test</code> <code>-x $DAEMON || </code><code>exit</code> <code>0</code>
<code>d_start(){</code>
<code> </code><code>$DAEMON -y $CONFIGFILE || </code><code>echo</code> <code>-n </code><code>" already running"</code>
<code>}</code>
<code>d_stop(){</code>
<code> </code><code>kill</code> <code>-QUIT `</code><code>cat</code> <code>$PIDFILE` || </code><code>echo</code> <code>-n </code><code>" no running"</code>
<code>d_reload(){</code>
<code> </code><code>kill</code> <code>-USR2 `</code><code>cat</code> <code>$PIDFILE` || </code><code>echo</code> <code>-n </code><code>" could not reload"</code>
<code>case</code> <code>"$1"</code> <code>in</code>
<code> </code><code>start)</code>
<code> </code><code>echo</code> <code>-n </code><code>"Starting $DESC: $NAME"</code>
<code> </code><code>d_start</code>
<code> </code><code>echo</code> <code>"."</code>
<code> </code><code>;;</code>
<code> </code><code>stop)</code>
<code> </code><code>echo</code> <code>-n </code><code>"Stopping $DESC: $NAME"</code>
<code> </code><code>d_stop</code>
<code> </code><code>reload)</code>
<code> </code><code>echo</code> <code>-n </code><code>"Reloading $DESC configuration..."</code>
<code> </code><code>d_reload</code>
<code> </code><code>echo</code> <code>"Reloaded."</code>
<code> </code><code>restart)</code>
<code> </code><code>echo</code> <code>-n </code><code>"Restarting $DESC: $NAME"</code>
<code> </code><code># Sleep for two seconds before starting again,</code>
<code> </code><code># this should give the nginx daemon some time to perform a graceful stop</code>
<code> </code><code>sleep</code> <code>2</code>
<code> </code><code>*)</code>
<code> </code><code>echo</code> <code>"Usage: $SCRIPTNAME {start|stop|restart|force-reload)"</code> <code>>&2</code>
<code> </code><code>exit</code> <code>3</code>
<code>esac</code>
<code>exit</code> <code>0</code>
<code>3.随机用户密码生成</code>
<code>i </code><code>passwd</code><code>.sh</code>
<code>#创建一个 10 位的随机的密码。。。</code>
<code>#!/bin/bash </code>
<code>a=(a b c d e A B C D E F @ $ % ^ 0 1 2 3 4 5 6 7 8 9) </code>
<code>for</code> <code>((i=0;i<10;i++));</code><code>do</code>
<code> </code><code>echo</code> <code>-n ${a[$RANDOM % ${</code><code>#a[@]}]} </code>
<code>done</code>
<code>echo</code>
<code>vi</code> <code>useradd</code><code>.sh </code>
<code>#创建5个账号,引用了随机的密码。</code>
<code>i=1</code>
<code>while</code> <code>[ $i -</code><code>le</code> <code>5 ] </code>
<code>do</code>
<code> </code><code>useradd</code> <code>red$i </code>
<code>a=`sh .</code><code>/passwd</code><code>.sh` </code>
<code> </code><code>echo</code> <code>" red$i:$a "</code> <code>>> sumuserpasswd</code>
<code> </code><code>echo</code> <code>"~~~~~~~~~~~"</code> <code>>> sumuserpasswd </code>
<code> </code><code>echo</code> <code>red$i:$a|chpasswd </code>
<code># echo $a | passwd –-stdin red"$i"</code>
<code> </code><code>let</code> <code>i++ </code>
自己用的
1.查看本机跑的进程
ps -ef|awk '{if($2>2023){print $0}}'|awk -F " " '{OFS=" " ;for(i=8;i<=NF;i++)printf $i" ";if (NF > 7) printf "\n";}'|egrep -v "awk|-bash|pts|crond|flush|jbd2|udevd|ps|libexec|mingetty|gdm-password|gnome-power-manager|ext4-dio-unwrit|pulseaudio|metacity|gnome|dbus-daemon|dbus-launch|console-kit-daemon|Xorg|gdm-binary|rhsmcertd|atd|CMD|abrtd|sshd|rsyslogd"|uniq
4.app简单发布脚本
<code>#!/bin/bash</code>
<code>#Date=`date +%Y-%m-%d-%k-%M-%S`</code>
<code>. </code><code>/</code><code>etc</code><code>/</code><code>init.d</code><code>/</code><code>functions</code>
<code>Date</code><code>=</code><code>`date </code><code>+</code><code>%</code><code>Y</code><code>-</code><code>%</code><code>m</code><code>-</code><code>%</code><code>d`</code>
<code>scapk</code><code>=</code><code>"1.apk"</code>
<code>project</code><code>=</code><code>$</code><code>2</code>
<code>PRO</code><code>=</code><code>$</code><code>1</code>
<code>Appdir</code><code>=</code><code>"/home/app/$PRO"</code>
<code>[ ! </code><code>-</code><code>d $Appdir ] && mkdir </code><code>-</code><code>p $Appdir && mkdir </code><code>-</code><code>p $Appdir</code><code>/</code><code>{old,new}</code>
<code>function Svn() {</code>
<code>if</code> <code>[ </code><code>-</code><code>f $Appdir</code><code>/</code><code>newversion.txt ];then</code>
<code>oldappname</code><code>=</code><code>`cat $Appdir</code><code>/</code><code>newversion.txt`</code>
<code>yes|cp </code><code>-</code><code>r $Appdir</code><code>/</code><code>newversion.txt $Appdir</code><code>/</code><code>oldversion.txt</code>
<code>cd $Appdir</code>
<code>svn checkout http:</code><code>/</code><code>/</code><code>svn.com</code><code>/</code><code>svn</code><code>/</code><code>a</code><code>/</code><code>trunk</code><code>/</code><code>app</code><code>/</code><code>$project </code><code>-</code><code>-</code><code>no</code><code>-</code><code>auth</code><code>-</code><code>cache </code><code>-</code><code>-</code><code>username </code><code>'test'</code> <code>-</code><code>-</code><code>password </code><code>'123456'</code>
<code>cd $project</code>
<code>#lastre=`ls -l --color=auto -rt|tail -1|awk '{print $NF}'`</code>
<code>lastre</code><code>=</code><code>`ls </code><code>-</code><code>l|tail </code><code>-</code><code>1</code><code>|awk </code><code>'{print $NF}'</code><code>`</code>
<code>cd $lastre</code>
<code>appname</code><code>=</code><code>`ls </code><code>-</code><code>l|grep </code><code>".*release*.apk"</code><code>|awk </code><code>'{print $NF}'</code><code>`</code>
<code>echo </code><code>"$appname"</code> <code>> $Appdir</code><code>/</code><code>newversion.txt</code>
<code>cp </code><code>-</code><code>r $appname $Appdir</code><code>/</code><code>new</code>
<code>yes|cp </code><code>-</code><code>r $scapk $Appdir</code><code>/</code><code>old</code><code>/</code><code>$oldappname</code>
<code>yes|cp </code><code>-</code><code>r $project</code><code>/</code><code>$lastre</code><code>/</code><code>$appname $scapk</code>
<code>find . </code><code>-</code><code>name </code><code>"*.apk"</code> <code>-</code><code>type</code> <code>f </code><code>-</code><code>mtime </code><code>+</code><code>30</code> <code>-</code><code>exec</code> <code>rm </code><code>-</code><code>rf {} \;</code>
<code>case $</code><code>1</code> <code>in</code>
<code>svn)</code>
<code>Svn</code>
<code>;;</code>
<code>*</code><code>)</code>
<code>printf </code><code>"sh -x app.sh svn c c \n"</code>
5.检测是否发送邮件
<code>if</code> <code>[ </code><code>-</code><code>f </code><code>/</code><code>root</code><code>/</code><code>.bash_profile ];then</code>
<code>source </code><code>/</code><code>root</code><code>/</code><code>.bash_profile</code>
<code>fi </code>
<code>sdate</code><code>=</code><code>`date </code><code>"+%Y-%m-%d %H:%M:%S"</code><code>`</code>
<code>sql</code><code>=</code><code>"use db;select status,create_time from atable where round((UNIX_TIMESTAMP('${sdate}')-UNIX_TIMESTAMP(create_time))/3600)>24"</code><code>;</code>
<code>MysqlUser</code><code>=</code><code>'user'</code>
<code>PassWord</code><code>=</code><code>'password'</code>
<code>MysqlCmd</code><code>=</code><code>"mysql -h host -u"</code><code>$MysqlUser</code><code>" -p"</code><code>$PassWord""</code>
<code>ddate</code><code>=</code><code>`date </code><code>"+%H:%M:%S"</code><code>`</code>
<code>alert_value</code><code>=</code><code>1</code>
<code>problem_file</code><code>=</code><code>'sql.txt'</code>
<code>if</code> <code>[ </code><code>-</code><code>e ${problem_file}</code><code>-</code><code>$alert_value ];then</code>
<code>cd </code><code>/</code><code>home</code><code>/</code><code>shell</code>
<code>datefile</code><code>=</code><code>`stat ${problem_file}</code><code>-</code><code>$alert_value|grep Modify|awk </code><code>'{print $2}'</code><code>`</code>
<code>datenow</code><code>=</code><code>`date </code><code>"+%Y-%m-%d"</code><code>`</code>
<code>[ $datefile !</code><code>=</code> <code>$datenow ] && rm </code><code>-</code><code>rf ${problem_file}</code><code>-</code><code>$alert_value</code>
<code>exit </code><code>0</code>
<code>if</code> <code>[ ! </code><code>-</code><code>e ${problem_file}</code><code>-</code><code>$alert_value ];then</code>
<code>$MysqlCmd </code><code>-</code><code>e </code><code>"$sql"</code><code>>.</code><code>/</code><code>sql.txt</code>
<code>sleep </code><code>5</code>
<code>problem_value</code><code>=</code><code>`cat $problem_file|wc </code><code>-</code><code>l`</code>
<code>if</code> <code>[ $problem_value </code><code>-</code><code>gt $alert_value ] && [ ! </code><code>-</code><code>e ${problem_file}</code><code>-</code><code>$alert_value ];then</code>
<code> </code><code>subject</code><code>=</code><code>`echo </code><code>-</code><code>n </code><code>"subject"</code> <code>| base64`</code>
<code> </code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>scripts</code><code>/</code><code>sendEmail </code><code>-</code><code>f [email protected] </code><code>-</code><code>t [email protected] </code><code>-</code><code>s smtp.a.com </code><code>-</code><code>u </code><code>"=?utf-8?b?$subject?="</code> <code>-</code><code>o message</code><code>-</code><code>content</code><code>-</code><code>type</code><code>=</code><code>text </code><code>-</code><code>o message</code><code>-</code><code>charset</code><code>=</code><code>utf</code><code>-</code><code>8</code> <code>-</code><code>xu [email protected] </code><code>-</code><code>xp password </code><code>-</code><code>m </code><code>"messages"</code>
<code> </code><code>touch ${problem_file}</code><code>-</code><code>$alert_value</code>
00 */1 * * * root /bin/bash /home/shell/test.sh >/dev/null 2>&1 &
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1670448,如需转载请自行联系原作者