DevOps 工具-代码部署脚本

释放双眼,带上耳机,听听看~!

本程序用于收集,防火墙,路由器,交换机等日志

 

Bash代码  

  1. #!/bin/bash  
  2. #####################################################################  
  3. # Description: Automation Deployment Script   
  4. #              Netkiller series utilities  
  5. # Author: Neo<openunix@

163.com>  

  1. # Homepage: http://netkiller.sourceforge.net/  
  2. # $Id$  
  3. #####################################################################  
  4.   
  5. if [ -z $DEPLOY_HOME ]; then  
  6.     echo 

'Example: export DEPLOY_HOME=/srv/deploy'  

  1.     exit  
  2. fi  
  3. if [ -f $DEPLOY_HOME/conf/default.conf ];then  
  4.     . $DEPLOY_HOME/conf/default.conf  
  5. fi  
  6.   
  7. #================================================================================  
  8.   
  9. LOGFILE=

"deploy.$(date -d "today
" +"%Y-%m-%d
").log"  

  1. TMPDIR=$(mktemp -d –suffix=.tmp -p /tmp deploy.XXXXXX)  
  2.   
  3. #SUBVERSION=  
  4. SVN=/usr/bin/svn  
  5.   
  6. TIMEPOINT=
    1
    1`

    date 

'+%Y%m%d-%H%M%S'

1
1`

  

  1. BACKUPDIR=$TMPDIR/backup/${TIMEPOINT}  
  2. RSYNC=

"rsync"  

  1. UPLOAD_DIR=$TMPDIR  
  2. REVISION=

''  

  1. #================================================================================  
  2.   
  3. if [ ! -d ${TMPDIR} ]; then  
  4.     mkdir ${TMPDIR}  
  5. fi  
  6.   
  7. if [ ! -d ${BACKUPDIR} ]; then   
  8.     mkdir -p $BACKUPDIR  
  9. fi  
  10.   
  11. #pkgname=${project}-${version}-${datetime}.pkg  
  12. #tar jcvf ${pkgname} /tmp/${project} –remove-files >> deploy.log  
  13. #####################################################################  
  14.   
  15. function usage(){  
  16. echo $

"Usage: $0 [OPTION] <server-id> <directory/timepoint>"  

  1. echo -ne "  
  2. OPTION:  
  3.   
  4.         deploy <domain> <host>  
  5.         revert <domain> <host> <revision>  
  6.         backup <domain> <host> <directory>  
  7.   
  8.         list  
  9.         list <domain> <host>  
  10.   
  11.         import <domain> <host> <dir>  
  12.         export <domain> <host> <dir>  
  13.       
  14.     clean <domain> <host>     
  15.     log <project> <line>  
  16.   
  17.         conf list  
  18.         conf new <project>  
  19.         conf remove <project>  
  20.         conf show <project>  
  21.         conf edit <project>        
  22.   
  23.     cron show  
  24.     cron setup  
  25.     cron edit  
  26. "  
  27.   
  28.     exit  
  29. }  
  30.   
  31. function logging(){  
  32.         local logfile=

"$LOGDIR/$LOGFILE"  

  1.         local timepoint=$(date -d 

"today" +
"%Y-%m-%d_%H:%M:%S")  

  1.         local status=$

1  

  1.         local message=$

2  

  1.         echo 

"[$timepoint] [${status}] ${message}" >> $logfile  

  1. }  
  2. #logging 

'OK' 
'This is test msg!!!'  

  1.   
  2. function conf(){  
  3.     local cmd=$

2  

  1.     local prj=$

3  

  1.     case $cmd in  
  2.         list)  
  3.             ls $SYSCONFDIR  
  4.             ;;  
  5.         new)  
  6.             read -p 

"Project directory: " prjdir  

  1.             if [ -z $prjdir ]; then  
  2.                 exit  
  3.             fi  
  4.             if [ -f $SYSCONFDIR/$prjdir.conf ]; then  
  5.                 echo 

"cannot create config $prjdir.conf': File exists"  

  1.                 exit 

1  

  1.             fi  
  2.   
  3.             read -p 

"subversion url: $REPOSITORIES/: " svnurl  

  1.             if [ -z $svnurl ]; then  
  2.                 svnurl=$REPOSITORIES  
  3.             fi  
  4.             read -p 

"hostname: " host  

  1.             if [ -z $host ]; then  
  2.                 host=

"localhost"  

  1.                 echo 

"default hostname 'localhost'"  

  1.             fi  
  2.             read -p 

"upload mode ftp/scp/sftp/rsync: " mode  

  1.             if [ -z $mode ]; then  
  2.                 mode=ftp  
  3.             else  
  4.                 case $mode in  
  5.                     ftp)  
  6.                         mode=

"ftpdeploy"  

  1.                         ;;  
  2.                     scp)  
  3.                         mode=

"scpdeploy"  

  1.                         ;;  
  2.                     sftp)  
  3.                         mode=

"sftpdeploy"  

  1.                         ;;  
  2.                     rsync)  
  3.                         mode=

"rsync"  

  1.                         ;;  
  2.                 esac  
  3.             fi  
  4.             read -p 

"Create $prjdir config? [y/n]" -n 
1 key  

  1.             echo  
  2.             if [ $key = 

'y' ]; then  

  1.                 echo -ne "REPOSITORIES=$REPOSITORIES/$svnurl  
  2. COMMAND=$mode  
  3. HOSTNAME=$host  
  4.                 " >> $SYSCONFDIR/$prjdir.conf  
  5.             fi  
  6.             ;;  
  7.         remove)  
  8.             if [ -f $SYSCONFDIR/$prj ]; then  
  9.                 rm -rf $SYSCONFDIR/$prj  
  10.             fi  
  11.             ;;  
  12.         show)  
  13.             cat $SYSCONFDIR/$prj  

给TA打赏
共{{data.count}}人
人已打赏
安全运维

故障复盘的简洁框架-黄金三问

2021-9-30 19:18:23

安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索