shell编程代码备忘

shell编程代码备忘java

最近须要将服务器代码天天定时的拷贝到远程服务器中 因此须要写个脚本python

filename=github-`date +%Y-%m-%d`.zip
zip -rq /git/backup/$filename /git/laborary  //将/git/laborary文件夹下的全部文件打成zip到/git/backup/目录下
scp /git/backup/$filename root@192.168.102.201:/root/Downloads //远程拷贝
rm -rf /git/backup/$filename
echo "开始备份文件......" `date`
filename=cdn-`date +%Y-%m-%d`.zip
zip -rq /data/backup/$filename /data/cdn

echo "文件备份成功......" `date`

 

写一个定时任务用到crontabmysql

crontab -l;列出全部的cron job
crontab -e;进入编辑模式状态
crontab -r;删除当前任务

在crontab -e状态下编辑以下:linux

20 15  * * * sh /git/backup.sh //天天下午15点20分执行backup.sh脚本
30 10  * * * sh /app1/release/startRelease.sh >>/app1/release/release.log 2>&1

#11月25日22:00分执行脚本
00 22 25 11 * sh /app1/release/startRelease.sh >>/app1/release/release.log 2>&1
crontab 表达式写法

*  *  *  *  *
分 时 日 月 周

 

定时发布任务git

#! /bin/sh
echo "开始拷贝文件到指定文件夹中..... 当前时间为" `date`
cp -rf /app1/release/backup/test.war /app1/webapps

echo "文件拷贝成功..... 当前时间为" `date`
echo "系统开始重启..... 当前时间为" `date`

/etc/init.d/jetty stop

ps -ef|grep jetty|grep -v grep

kill -9 $(ps -ef|grep jetty|grep -v grep|awk '{print $2}')

echo "开始发布应用..... 当前时间为" `date`

/etc/init.d/jetty start

echo "系统开始发布应用中 " `date`

ps -ef|grep jetty|grep -v grep

sleep 30s

if [ $? -eq 0 ]
   then
     echo "jetty 应用重启成功......"
fi

最终上线版本github

#! /bin/sh
echo "开始拷贝文件到指定文件夹中..... 当前时间为" `date`
cp -rf /app1/web/mybase/release/backup/Mulberry/Mulberry.war /app1/web/mybase/webapps

echo "文件拷贝成功..... 当前时间为" `date`
echo "系统开始重启..... 当前时间为" `date`

/etc/init.d/jetty stop

ps -ef|grep jetty|grep -v grep

sleep 1m

if [ $? -eq 0 ]
   then
     echo "jetty 进程未关闭......"

     echo "jetty 进程重试重启系统中......"
     /etc/init.d/jetty stop
fi


echo "开始发布应用..... 当前时间为" `date`

/etc/init.d/jetty start

echo "系统开始发布应用中 " `date`

ps -ef|grep jetty|grep -v grep

sleep 30s

if [ $? -eq 0 ]
   then
     echo "jetty 应用重启成功......"
fi

 

备份数据库web

import os
import time
import zipfile


db_host = "db_host"
db_user = "root"
db_passwd = "root"
db_name = "test"
db_charset = "utf8"
db_backup_name = r"/Users/Documents/documents/learning/git/backup/mysql_%s.sql" % (time.strftime("%Y%m%d%"))


zip_src = db_backup_name
zip_dest = zip_src + ".zip"


def zip_files():
    f = zipfile.ZipFile(zip_dest, 'w', zipfile.ZIP_DEFLATED)
    f.write(zip_src)
    f.close()


if __name__ == "__main__":
    print("start dump database.......");
    os.system("mysqldump -h%s -u%s -p%s %s --default_character-set=%s > %s" % (db_host, db_user, db_passwd, db_name, db_charset, db_backup_name))

    print("start zip files...")
    zip_files()
    print("success!")

 

python经常使用脚本sql

安装软件以下shell

import os
import sys

def installTomcat():
  os.system('rm -rf /usr/local/tomcat')
  os.system('cd /usr/local && mkdir tomcat')
  os.system('wget -q http://192.168.102.199/tools/apache-tomcat-template-9.0.0.zip -O /usr/local/tomcat/apache-tomcat-9.0.0.M1.zip')
  os.system('cd /usr/local/tomcat && unzip -q apache-tomcat-9.0.0.M1.zip')


def installZookeeper():
   result=os.popen('ls /usr/local').read()
   if result.find("zookeeper")==-1:
      os.system('cd /usr/local && mkdir zookeeper')
      os.system('wget -q http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz -O /usr/local/zookeeper/zookeeper-3.4.8.tar.gz')
      os.system('cd /usr/local/zookeeper && tar -zxvf zookeeper-3.4.8.tar.gz')

def installJdk():
    result=os.popen('ls /usr/local').read()
    if result.find("jdk")==-1:
        os.system('wget -q http://192.168.102.199/tools/jdk-8u72-linux-x64.tar.gz -O ~/jdk-8u72-linux-x64.tar.gz')
        os.system('cd /usr/local&& tar -zxf ~/jdk-8u72-linux-x64.tar.gz ')
        os.system('echo "export JAVA_HOME=/usr/local/jdk1.8.0_72" >> ~/.bashrc')
        os.system('echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc')
        os.system('source ~/.bashrc')


def installActiveMQ():
   result=os.popen('ls /usr/local').read()
   if result.find("activeMQ")==-1:
      os.system('cd /usr/local && mkdir activeMQ')
      os.system('wget -q http://archive.apache.org/dist/activemq/5.14.1/apache-activemq-5.14.1-bin.zip -O /usr/local/activeMQ/apache-activemq-5.14.1-bin.zip')
      os.system('cd /usr/local/activeMQ && unzip -q apache-activemq-5.14.1-bin.zip')
      os.system('cd /usr/local/activeMQ/apache-activemq-5.14.1/bin && chmod 775 activemq')


installTomcat()
installZookeeper()
installJdk()
installActiveMQ()

 

#!/bin/env python
# coding: utf-8
import commands
import sys
import os
import re
import time

cmd=sys.argv[1]
project=sys.argv[2]


def closeTomcat():
        command = """ps -ef | grep -v grep | grep 'catalina.startup.Bootstrap start'|grep %s | awk '{print $2}'"""%project
        command_status,tomcat_pid=commands.getstatusoutput(command)
        if tomcat_pid != '':
                commands.getstatusoutput("kill -9 %s"%tomcat_pid)

def updateWar():
        os.system("rm -rf /usr/local/tomcat/%s/webapps/*"%project)
        os.system("mv /usr/local/tomcat/wars/%s.war /usr/local/tomcat/%s/webapps/ROOT.war"%(project,project))

def startTomcat():
        os.system("sh /usr/local/tomcat/%s/bin/startup.sh"%project)
        tomcat_logpath = "/usr/local/tomcat/%s/logs/catalina.out"%project
        log_tell = os.path.getsize(tomcat_logpath)
        old_time = echo_time = int(time.time())
        with open(tomcat_logpath, 'r') as fp:
                fp.seek(log_tell)
                while True:
                        line = fp.readline()
                        if not line:
                                time.sleep(0.1)
                                continue
                        print line
                        start_time = re.search(r'Server startup in (\d+) ms', line)
                        if start_time:
                                break
                        if int(time.time())-old_time>60:
                                print "time out"
                                break


if cmd=='deploy':
        closeTomcat()
        updateWar()
        startTomcat()

else:
        closeTomcat()
        startTomcat()

 

jenkins pre shell

cd $WORKSPACE/src/main/resources
rm -f application.properties
mv application_online.properties application.properties

Linux自动清理日志文件数据库

清理两天前全部后缀是.log的文件

find /data/applogs/demo/logs/ -mtime +2 -name "app.log.*" -exec rm -rf {} \;
find /data/applogs/weixin-service/logs -mtime +2 -name "app.log.*" -exec rm -rf {} \;

具体参数说明:

  • find:linux的查找命令,用户查找指定条件的文件;
  • /data/applogs/demo/logs/:想要进行清理的任意目录;
  • -mtime:标准语句写法;
  • +2:查找2天前的文件,这里用数字表明天数;
  • "*.log":但愿查找的数据类型,"*.jpg"表示查找扩展名为jpg的全部文件,"*"表示查找全部文件,这个能够灵活运用,触类旁通;
  • -exec:固定写法;
  • rm -rf:强制删除文件,包括目录;
  • {} \; :固定写法,一对大括号+空格+\+; 
相关文章
相关标签/搜索