php版本更新工具up2server

为什么要做这个工具

  之前做php 开发的时候,每次版本更新,要把修改的文件同步到服务器,都要小心翼翼,如果漏掉了文件,那就完蛋了,KPI,奖金什么的都没了。

所以写了这个工具。代码在github  https://github.com/foxswang/up2server

1. 复制 获取要上传的文件 运行

 python get_upload_file.py

  get_upload_file.py的代码如下:

#!/usr/bin/python
import os
import os.path
import shutil
import time,  datetime
import string 

fromdir = "source_folder"
todir = "backup"
filename = ‘filelist.txt‘

#
def cpFile(srcPath, destPath):
    shutil.copy(srcPath,destPath)
    #shutil.copytree(srcPath,destPath)
#
def copyFiles(sourceDir,  targetDir):
    if sourceDir.find(".svn") > 0:
        return
    for file in os.listdir(sourceDir):
        sourceFile = os.path.join(sourceDir,  file)
        targetFile = os.path.join(targetDir,  file)
        if os.path.isfile(sourceFile):
            if not os.path.exists(targetDir):
                os.makedirs(targetDir)
            if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))):
                    open(targetFile, "wb").write(open(sourceFile, "rb").read())
        if os.path.isdir(sourceFile):
            First_Directory = False
            copyFiles(sourceFile, targetFile)
#
if  __name__ == "__main__":
    text_file = open("./"+filename ,"r")
    #current_path = os.getcwd()
    current_path = os.getcwd()
    all_line = 0
    folder_count = 0;
    print("current_path "+ current_path )
    if not os.path.exists(os.path.join(current_path, todir) ):
                os.makedirs(os.path.join(current_path, todir) )
    for line in text_file:
       line=line.strip(‘\n‘)
       srcFile = current_path + line
       dstFile = current_path + ‘/‘ + todir + line
       targetDir = os.path.dirname(dstFile)
       if not os.path.isfile(srcFile):
          folder_count = folder_count+1
          continue;
       print (srcFile)
       print (dstFile)
       if not os.path.exists(targetDir):
              os.makedirs(targetDir)
       print("cp "+ srcFile +" to " + dstFile)
       cpFile(srcFile,dstFile)
       all_line  = all_line + 1

    print ("copy success  file : %d folder: %d" % (all_line,folder_count))

  

2. 备份服务器的文件,方便升级失败后进行恢复:

python backup_server_files.py

3. 将第一步复制的文件,上传到服务器

  服务器版本升级so easy

文件和一些参数说明

1. 确保系统安装了python(windows 和linux 都支持)

2 .get_upload_files.py

  获取需要上传到服务器上的文件列表,并保存到指定的文件夹

源文件的目录

   fromdir = "source_folder"

根据filelist.txt 复制的文件存储目录

  todir = "backup"

需要上传服务器的文件列表

  filename = ‘filelist.txt‘

3.backup_server_files.py

备份目录文件

  todir = "backup"

需要备份的文件列表

 filename = ‘filelist.txt‘
服务器的代码路径,记住最后的 / 需要保留
 SRC_FOLDER = ‘/path_to_server_src_folder/‘

4.filelist.txt 这个文件存储需要上传的文件

git如何获取需要上传的文件
  git diff --name-status HEAD~2 HEAD~3
  git diff
  git diff b45ba47d1b297217e3ec6a3ab0f61716a8d6ecbc c244d0bf06d56ec86aaedeefa5dcd84dd9febc60
    一般来说,通过 hash 串的前 4~6 位就可以区分,所示可以简写为:
  git diff b45b 355e

  

svn 如何获取2个版本之前差异
http://www.cnblogs.com/QLeelulu/archive/2009/12/09/1619927.html

时间: 2024-08-06 03:42:50

php版本更新工具up2server的相关文章

SmsManager - Windows Phone手机PC端短信管理工具检查版本更新地址

SmsManager - Windows Phone手机PC端短信管理工具检查版本更新时将抓取此页面中两个特殊字符串之间的文字内容(共3处),并替换\n为换行,html转义字符为原字符. wpsmsmanager0-start[1.2]end-wpsmsmanager0 wpsmsmanager1-start[新版本V1.2已发布(2015/4/10)\n更新说明:\n可导出短信至Android手机\n前往查看?]end-wpsmsmanager1 wpsmsmanager2-start[htt

IC卡解密从零开始学2 版本更新! 解密工具PN532-mfoc-mfcuk-GUI V2.1 By:lookyour

程序更新 更新内容最下面 2017/5/3 V2.1====================================== 最简要介绍下M1卡数据结构 目前能看到的有2种M1卡,分别为S50 S70,其实就是容量不一样, S50为1Kbyte  S70为4Kbyte主要介绍S50 即1K卡   4K卡很少见 S50容量1Kbyte,16个扇区(Sector),每个扇区4块(Block)(块0-3),共64块,按块号编址为0-63.每个扇区有独立的一组密码及访问控制.第0扇区的块0(即绝对地

包管理工具rpm和yum的用法

包管理工具rpm和yum的用法 一.rpm的用法 rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐收到其他发行版的采用,RPM套件管理方式的出现,让Linux易于安装.升级,间接提升了Linux的适用性. rpm用法:rpm [OPTION...] 1.rpm安装软件包,后面需要跟上程序包文件的绝对路径或相对路径 常用选项: -v:显示指令的执行过程 -vv:详细显示指令执行过程,便于排错 -h:以#号显示程

那些年我们一起追逐过的安全工具

前言 每一段岁月,都会留下属于时代的记忆——那些年,我们所追逐与热衷的安全工具,亦是如此. 在那个信息不对称的年代,安全工具主要是在小圈子内传播.当年天真的我们(脚本小子),以为网络就是江湖,一套完美的工具就是你的兵器——路见不平一声吼,碰到注入亮阿D. 注:由于年代久远,当年的工具大多已停止更新,如今网上所能搜到的又可能携带后门,所以本文中就不提供下载地址了 阿D注入工具 简介 第一个介绍的肯定是阿D注入工具.那个时候大家都不大会用SQLMAP,或者根本没听说过.当时对SQL注入检测工具最出名

微信版本更新日志分析

微信,中国在移动端时代最成功的产品.当我们审视微信的成功的时候,很多人说“是因为腾讯用户量大带量”“因为摇一摇功能方便大家约炮” ..... 这些可能是微信成功的因素之一,但一定不是微信成功的主要原因(不然,为什么同样占有腾讯资源的输入法和浏览器都没有成功). 成功从不是某一个点导致的成功,而是厚积薄发的积累,不断的修正,作出的正确的决定比错误的多,以及多方面的历史进程相互的促进,顺应大势,正如一位伟人说过,“一个人的成功既要靠自身的努力也要考虑到历史的进程”. 把微信这么多年来的更新日志整理一

[开发工具]_[Sublime Text 2]_[配置C++编译运行环境]

场景: 1. g++的版本更新比较快,可以使用最新的C++11特性, 这里sublime text 2是我的轻量级C++开发工具(只有这个),可以使用st2这种工具来验证一些语法新特性. 2. st2的好处是免费, 还有支持多语言的语法高亮和函数outline 3. 当然st2也支持插件开发. 4. 给sublime text 2添加选中文件右键打开看这里: http://blog.csdn.net/infoworld/article/details/18771731 步骤 配置C++编译选项

DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

前言: 好久没写文了, 距离上一篇文章是3个月前的事了,虽然工作很忙,主要还是缺少写作的内容和激情,所以没怎么动手. 之前有一个来月不断面试不同层次来应聘的人员,很有想写文的冲动,后来还是忍住了. 估计写了也是那种说人坏话.恨铁不成钢的情绪文,没啥营养,所以情绪过了就没想写了. 在公司除了管理上的事情之外,另外也研发了一套适用信息系统的快速开发框架,这个有机会再写写文和大伙分享了. 下面言归正文了. 背景: 关于这个DBImport工具,发布的版本不多,仅有:V1.0.V2.0.V3.0.V3.

比较几种工具Python(x,y) Anaconda WinPython

浏览了一些相关的论坛,将几大工具的特点分别总结下: Python(x,y) 更新很慢,稳定性一般,默认带有很多包. WinPython  只能在windows上跑,界面友好,和Python(x,y)是一个贡献者,更新较多. 比较好的是anaconda,可以很快安装Linux系统里面,Anaconda安装.更新和删除都很方便,且所有的东西都只安装在一个目录中/home/wxp/anaconda/,版本更新快.较好的支持数据分析常用库.http://continuum.io/downloads#al

前端自动化构建——需求和工具选择

今天突然心血来潮,想把前端的一些人工工作流程自动化,其实之前已经在用grunt进行自动化构建,但总是觉得还是有些事情未做好.首先说说,前端平时需要做那些自动化吧: 1. 先讲HTML,每个项目每个页面都需要统一的头部,其他标题,关键字,作者等meta自行修改,body部分每个页面各自填充,但使用的框架统一. 2. CSS,我使用的是less来编写,所以需要编译成css,另外,编译过程,一些css属性需要自动添加浏览器前缀,例如border-radius,属性最好自动按照类型排序,一些css的编写