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()
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 {} \;
具體參數說明: