#!/usr/bin/env python
# encoding: utf-8 import time
import os
import sys
import logging #create logger
logger = logging.getLogger("phpfile")
logger.setLevel(logging.DEBUG)
#create console handler and set level to error
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
#create file handler and set level to debug
fh = logging.FileHandler("phpfile.log")
fh.setLevel(logging.DEBUG)
#create formatter
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#add formatter to ch and fh
ch.setFormatter(formatter)
fh.setFormatter(formatter)
#add ch and fh to logger
logger.addHandler(ch)
logger.addHandler(fh) def backup():
source = ['/apps/emc_nas/cms/activity','/apps/emc_nas/cms/phpcms']
#source = ['/apps/emc_nas/cms/activity']
target_dir = '/apps/emc_nas/bak/cms_backup/'
today = target_dir + time.strftime('%Y%m%d')
now = "phpcms_" + time.strftime('%Y%m%d') if not os.path.exists(today):
os.mkdir(today)
print 'Successfully created directory', today
logger.info(today) target = today + os.sep + now + '.tar.gz'
logger.debug(target)
tar_backup = "tar -zcvf %s %s" % (target,' '.join(source))
logger.info(tar_backup) if os.system(tar_backup) == 0:
print "Successful backup to ", target
else:
print "Backup FAILED!!" logger.debug(tar_backup)
if __name__ == "__main__":
backup()

Jenkins发布PHP代码脚本:

#!/usr/bin/env python
#coding:utf-8 ####################################
# discrition: jenkins git php scrpit
# example: sudo python php-shop.py
# write by saneri at 2017/08/14
#################################### import os
import time
import subprocess packge_dir = "/root/.jenkins/workspace/shop-H5/"
remote_ip = "59.110.164.99"
remote_port = "'-e ssh -p 6168'"
backup_dir = '/data/backup/' + time.strftime('%Y%m%d')
source_dir = "shop-H5" def backup_php(): tgz = backup_dir + os.sep + "shop-H5_" + time.strftime('%Y%m%d%H') + '.tgz'
backup_tgz = "tar -zcvf %s %s" % (tgz,source_dir) #print(time.strftime('%Y-%m-%d-%H:%M'))
#print(backup_dir)
if not os.path.exists(backup_dir):
os.mkdir(backup_dir)
print("Sucessfully created directory",backup_dir) print("开始备份代码中...")
os.chdir('/opt')
if subprocess.call(backup_tgz,shell=True) == 0:
print("Successful backup to ", tgz)
else:
print("Backup FAILED!!") time.sleep(3) def rsync_php(): print("开始代码同步中...")
remote_ssh = remote_ip + ":" + packge_dir
rsyn = "/usr/bin/sudo rsync -avH --progress %s %s %s" %(remote_port,remote_ssh,source_dir) if subprocess.call(rsyn,shell=True) == 0:
print("同步代码成功...")
else:
print("同步代码失败,check...")
os.chown(source_dir,504,504) if __name__ == "__main__":
backup_php()
rsync_php()
#!/usr/bin/env python
#coding:utf- ####################################
# discrition: jenkins git php scrpit
# example: sudo python shop-h5.py
# write by saneri at //
#################################### import os
import time
import subprocess packge_dir = "/root/.jenkins/workspace/prd-php-p/"
remote_ip = "59.110.164.99"
remote_port = "'-e ssh -p 6168'"
backup_dir= '/data/backup/' + time.strftime('%Y%m%d')
source_dir="shop-H5"
source_URL="/data/web/xd" def backup_php():
tagz = backup_dir + os.sep + source_dir + "_" + time.strftime('%Y%m%d%H') + '.tgz'
print "tagz=",tagz
backup_tgz = "tar -zcvf %s %s" %(tagz,source_dir) if not os.path.exists(backup_dir):
os.mkdir(backup_dir)
print("Sucessfully created directory",backup_dir) print("开始备份代码中...")
os.chdir(source_URL)
#os.system(backup_tgz)
#subprocess.call(backup_tgz,shell=True) if subprocess.call(backup_tgz,shell=True) == :
print "Successful backup to ", tagz
else:
print "Backup FAILED!!" time.sleep()
def rsync_php(): print("开始代码同步中...") remote_ssh = remote_ip + ":" + packge_dir time.sleep() rsyn="/usr/bin/sudo rsync -avH --progress --exclude=.git %s %s %s" %(remote_port,remote_ssh,source_dir)
#print rsyn if subprocess.call(rsyn,shell=True) == :
print("同步代码成功...") else:
print("同步代码失败,check...") #os.chown(source_dir,,)
mattr="chown -R phpci:phpci %s" %(source_dir)
subprocess.call(mattr,shell=True) if __name__ == "__main__":
backup_php()
rsync_php()

生产代码发布脚本

#!/usr/bin/env python
#coding:utf- ####################################
# discrition: jenkins git php scrpit
# example: sudo python prd-api.py
# write by saneri at //
#################################### import os
import time
import subprocess packge_dir = "/root/.jenkins/workspace/prd-php-api/"
remote_ip = "59.110.164.99"
remote_port = "'-e ssh -p 6168'"
backup_dir= '/data/backup/' + time.strftime('%Y%m%d')
source_dir="shop-api"
source_URL="/data/www"
excl="--exclude=shop-api/appApi/frame/log" def backup_php():
tagz = backup_dir + os.sep + source_dir + "_" + time.strftime('%Y%m%d%H') + '.tgz'
print "tagz=",tagz
backup_tgz = "tar -zcvf %s %s %s" %(tagz,excl,source_dir)
if not os.path.exists(backup_dir):
os.mkdir(backup_dir)
print("Sucessfully created directory",backup_dir) print("开始备份代码中...")
os.chdir(source_URL)
if subprocess.call(backup_tgz,shell=True) == :
print "Successful backup to ", tagz
else:
print "Backup FAILED!!" time.sleep()
def rsync_php(): print("开始代码同步中...") remote_ssh = remote_ip + ":" + packge_dir
#print remote_ssh time.sleep() rsyn="/usr/bin/sudo rsync -avH --progress --exclude=.git %s %s %s" %(remote_port,remote_ssh,source_dir)
#print rsyn if subprocess.call(rsyn,shell=True) == :
print("同步代码成功...") else:
print("同步代码失败,check...") mattr="chown -R phpci:phpci %s" %(source_dir)
subprocess.call(mattr,shell=True) if __name__ == "__main__":
backup_php()
rsync_php()

增加备份排除目录功能

pyhont备份php代码脚本的更多相关文章

  1. Centos使用crontab自动定时备份mysql的脚本

    在我们网站上线之后免不了需要备份数据库,为什么要备份呢?我给大家列出了3个理由. 1.防止数据丢失 2.防止数据改错了,可以用来恢复 3.方便给客户数据 以 上几点告诉我们要经常备份,当然我今天给大家 ...

  2. salt上编写了备份日志的脚本

    我在salt上编写了备份日志的脚本,在/opt/CardServer下的主程序目录只保留当天的日志,/opt/log_del目录会保存7天的日志.salt * state.sls script.log ...

  3. SQL备份数据库代码

    SQL备份数据库代码 #region 服务每天备份一次数据库 /// <summary> /// 服务每天备份一次数据库 /// </summary> public void ...

  4. php 备份数据库代码(生成word,excel,json,xml,sql)

    单表备份代码: 复制代码代码如下: <?php class Db { var $conn; function Db($host="localhost",$user=" ...

  5. 实现对MySQL数据库进行分库/分表备份(shell脚本)

    工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...

  6. 数据库备份及SQL脚本导入

    数据库备份及SQL脚本导入 数据导出 su - oracle exp 数据库用户名/数据库密码@ORCL file=20190905.dmp full=y SQL脚本导入 首先导入前查看Oracle用 ...

  7. [SQLServer]NetCore中将SQLServer数据库备份为Sql脚本

    NetCore中将SQLServer数据库备份为Sql脚本 描述: 最近写项目收到了一个需求, 就是将SQL Server数据库备份为Sql脚本, 如果是My Sql之类的还好说, 但是在网上搜了一大 ...

  8. Linux oracle数据库自动备份自动压缩脚本代码

    Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: www.jbxue.com ##系统名称 sysname ...

  9. Linux自动备份MySQL数据库脚本代码

    下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是, ...

随机推荐

  1. Zookeeper之Zookeeper的Client的分析

    1)几个重要概念 ZooKeeper:客户端入口 Watcher:客户端注册的callback ZooKeeper.SendThread: IO线程 ZooKeeper.EventThread: 事件 ...

  2. Unique constraint on single String column with GreenDao2

    转:http://software.techassistbox.com/unique-constraint-on-single-string-column-with-greendao_384521.h ...

  3. 简洁的python测试框架——Croner

    [本文出自天外归云的博客园] Croner简介 这是一个非常简洁的测试框架,是基于python3的nose进行二次开发的. Github地址 可以随意的在此基础上进行扩展以支持jenkins等其他扩展 ...

  4. java 栈和队列的模拟--java

    栈的定义:栈是一种特殊的表这种表只在表头进行插入和删除操作.因此,表头对于栈来说具有特殊的意义,称为栈顶.相应地,表尾称为栈底.不含任何元素的栈称为空栈. 栈的逻辑结构:假设一个栈S中的元素为an,a ...

  5. [转]JSP中EL表达式三元运算符的使用

    原文地址:http://www.guance.com/469.html Java中的三元运算符为:条件?条件为true值:条件为false的值EL也有一样的运算符,用EL的三元运算符有时可以代替c:c ...

  6. Selenium学习笔记

    Selenium是一个强大的自动化测试工具,它的核心思想是通过JavaScript嵌入的方式直接操纵页面的DOM来模拟手工测试工作. Selenium IDE,一个Firefox插件,可以在Firef ...

  7. TCP粘包, UDP丢包, nagle算法

    一.TCP粘包 1. 什么时候考虑粘包 如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似于http协议,UDP不会出 ...

  8. Go Revel - Session / Flash(会话与flash)

    ##Session / Flash 作用域 revel提供了两种cookies存储机制: // 一个加密签过的cookie (限制为4kb). // 限制: Key 中不能有冒号 type Sessi ...

  9. [开发笔记]-ASP.NET项目在IIS上使用虚拟目录

    说一下我想要实现的效果: 假如我做一个图片展示类的网站,或者其他需要用户上传文件的网站,需要将用户上传的文件保存到一个Uploadfiles文件夹下,一般我们在做项目时用户上传的文件都是保存在网站项目 ...

  10. PCL点云变换与移除NaN

    对点云的操作可以直接应用变换矩阵,即旋转,平移,尺度,3D的变换就是要使用4*4 的矩阵,例如:       等等模型 在这里直接使用程序开实现一个点云的旋转,新建文件matrix.cpp #incl ...