1. 程式人生 > >軟體開發過程自動化原理及技術(完整示例)

軟體開發過程自動化原理及技術(完整示例)

#!coding:utf8
"""
自動上傳檔案到靜態伺服器上,和測試伺服器上面
"""
from __future__ import with_statement
import sys
import os

from fabric.api import lcd
from fabric.operations import put, run
from dtlib.dtlog import dlog

server_folder_path = '/static_folder'
local_folder_path = server_folder_path

user_name = 'xxx'#伺服器登入使用者名稱
server_ssh_pwd = 'xxxxxxxx'#伺服器登入密碼
lcoal_dirlist = []


#所有的需要上傳檔案的伺服器的登入資訊列表
server_list = [
    # (host,user,password)
    ('192.168.1.201', user_name, server_ssh_pwd),
    ('xxx.xxx.xxx.xxx', user_name, server_ssh_pwd)
]


def scandir():
    """
    上傳本地某個目錄到伺服器的指定目錄
    :return:
    """
    list = os.listdir(local_folder_path)
    for i in list:
        dirpath = os.path.join(local_folder_path, i)
        if os.path.isdir(dirpath):
            lcoal_dirlist.append(i)

    dlog.debug(lcoal_dirlist)
    for j in lcoal_dirlist:
        dlog.debug("subdir:" + j)
        with lcd(local_folder_path):
            run('uname -s')
            put(j, server_folder_path, use_sudo=True)  # 上傳本地檔案到伺服器端

    # 在遠端機器上批量修改檔案許可權
    run('chmod a+rw %s/js/jquery-2.1.4.min.js' % (server_folder_path))  # 修改檔案許可權為可讀寫
    run('cp %s/js/jquery-2.1.4.min.js %s/js/jquery-2.1.4.min.js' % (server_folder_path,
                                                                    server_folder_path))

    print '%s has synced' % j

if __name__ == '__main__':

    currentpath = sys.path[0]
    for item in server_list:
        fab_cmd = 'fab  -f scp_static.py -H %s -u %s -p %s scandir' % (item[0], item[1], item[2])
        dlog.debug(fab_cmd)
        os.system(fab_cmd)

相關推薦

軟體開發過程自動化原理技術完整示例

#!coding:utf8 """ 自動上傳檔案到靜態伺服器上,和測試伺服器上面 """ from __future__ import with_statement import sys import os from fabric.api import lcd from fabric.

C# winform框架 音樂播放器開發 聯網下載音樂功能的實現原理原始碼純原創--

首先 ,我做下載音樂功能;主要是為了探究它是怎麼實現的;所以介面很醜,不要在意哈---- 接下來進入正題: 1.首先: 介面中下載音樂的部分主要是由3個segment組成:: 一個textbox,用於輸入比如你喜歡的歌曲名/歌手;; 第二個是button1 這是主

軟體開發過程中遇到的問題Java 、JavaScript

6. Parameter 'xxx' not found. Available parameters are [1, 0, param1, param2] 原因:Mapper介面的方法沒有引數沒有加:@Param("xxx") 7. java.lang.IllegalStateException: Amb

MySQL索引原理BTreeB-/+Tree結構詳解

  目錄 摘要 資料結構及演算法基礎 索引的本質 B-Tree和B+Tree B-Tree B+Tree 帶有順序訪問指標的B+Tree 為什麼使用B-Tree(B+Tree) 主存存取原理 磁碟存取原理 區域性性原理與磁碟預讀 B

字串匹配原理實現C++版

字串匹配原理及實現(C++版) 1. 字串匹配概念 2. BF 2.1 原理 2.2 程式碼實現 3. KMP 3.1 原理 3.2 程式碼實現 4. BM 4.1 壞字元

順序表的插入操作原理實現C語言詳解

順序表中存放資料的特點和陣列這種資料型別完全吻合,所以順序表的實現使用的是陣列。換句話說,順序表中插入元素問題也就等同於討論如何向陣列中插入資料。 因此,順序表中插入資料元素,無非三種情況: 在表頭插入; 在表的中間某個位置插入; 直接尾隨順序表,作為表的最後一個元素; 無論在順序表的什麼位置插

氣泡排序演算法原理實現超詳細

氣泡排序(Bubble Sort)是排序演算法裡面比較簡單的一個排序。它重複地走訪要排序的數列,一次比較兩個資料元素,如果順序不對則進行交換,並一直重複這樣的走訪操作,直到沒有要交換的資料元素為止。 氣泡排序的原理 為了更深入地理解氣泡排序的操作步驟,我們現在看一下氣泡排序的原理。 首先我們肯定有一個數組

Vue.js 餓了麼開發過程中的錯誤整理更新中……

此錯誤解決方案基本上來自CSDN,我只是配合我的問題做個整理,方便下次查詢,侵權刪 一、錯誤一 原因:   ./表示你自己當前載入當前目錄下的router檔案,但是我們沒有這個檔案,所以‘./router’會報錯; ‘vue-router’表示這是一個模組,這

[C++][執行緒池][完整實現] 轉:執行緒池原理建立C++實現

文章的主要框架是參考這篇文件的,http://jacky-dai.iteye.com/blog/1090285, 關於作者  張中慶,西安交通大學軟體所,在讀碩士,目前研究方向為分散式網路與移動中介軟體,對Linux極其愛好,可以通過[email protecte

Tensorflow實戰:Word2Vec_Skip_Gram原理實現多註釋

        Word2Vec也稱Word Embeddings,中文的叫法為“詞向量”或“詞嵌入”,是一種非常高效的,可以從原始語料中學習字詞空間向量的預測模型。         在Word2Vec出現之前,通常將字詞轉為One-Hot Encoder ,一個詞對應一個

軟體開發中的理想與現實十一——夠用就好

2月21日,專案正式開始第二天。依照昨天設計的框架和介面,我們開始實現這些功能,不過似乎大家的進展都比較慢,特別是XophiiX,似乎他陷入了困境之中。具體是什麼問題呢?請看下面的介面定義:    class CReader    {        // ...    pub

sina網頁新聞小偷原理原始碼java版

在網上看到網頁小偷,有偷笑話的有偷天氣的。。。最可笑的是GOOGLE上有個人釋出了一篇文章,說是js版本的,我開啟一看,language=vbscript.......還被很多人引用,一搜網頁小偷,都是那一篇文章,真讓人無語。更讓人無語的就是那個所謂的超級經典的笑話小偷。引用

HTML5利用WebRTC的getUserMedia獲取攝像頭資訊模擬拍照視訊完整示例

轉至https://blog.csdn.net/journey191/article/details/40744015    (如有冒犯聯絡我刪掉謝謝) 最近公司做的app涉及攝像頭,由於我們使用HTML5開發app,自然瞭解到getUserMedia介面。 關鍵是使用的

TCP三次握手和四次揮手過程原理擴充套件

先上圖:  三次握手過程狀態:          LISTEN:表示伺服器端的某個SOCKET處於監聽狀態,可以接受連線了。         SYN_SENT:當客戶端SOCKET執行CONNECT連線時,它首先發送SYN報文,因此也隨即它會進入SYN_SENT狀態

TCP三次握手和四次揮手過程原理擴充套件

【1】TCP如何保證可靠性傳輸? 在傳遞資料之前,會有三次握手來建立連線 應用資料被分割成TCP認為最合適的資料庫(按位元組編號,合理分片),這和UDP完全不同,應用程式產生的資料報長度保持不變。(將資料截斷為合理的長度) 當TCP發出一個段後,它啟動一個定時器,等待目

C# 基礎十三C# 軟體開發過程中,可執行檔案.exe 出現bug,該怎麼排查、解決:找到出現bug的位置

一、簡介 之前是完成了寫軟體,從而實現軟體的基本功能。到了今天,需要對自己寫的可執行檔案.exe找bug了。那麼下面,我將結合自己的軟體的使用過程中,講自己的經驗融入進來,解釋下什麼是bug、以及該怎麼找Bug。 二、Bug的分類 主要參考: https://blog.csdn.ne

敏捷開發系列之旅 第五站不一樣的RUP統一軟體開發過程

迭代式開發在軟體開發的早期階段就想完全、準確的捕獲使用者的需求幾乎是不可能的。實際上,我們經常遇到的問題是需求在整個軟體開發工程中經常會改變。傳統的開發方式對於這種需求的變更是很難應對的。 迭代式開發允許在每次迭代過程中需求可能有變化,通過不斷細化來加深對問題的理解。迭代式開發不僅可以降低專案的風險,而且

軟體開發過程學習筆記之概要設計說明書模板

1 引言 本設計書主要是基於以下目的編寫: 1、對系統概要設計的階段任務成果形成文件,以便階段驗收、評審,最終的文件驗收。 2、對需求階段的文件再次確認過程,對前一階段需求沒有做充分或錯誤的提出修改。 3、明確整個系統的功能框架和資料庫結構,為下一階段的詳細設計、編碼、和

RSA-演變過程原理、特點加解密簽名公鑰私鑰的生成

本篇是iOS逆向開發總結的第一篇文章,是關於iOS密碼學的相關技術分析和總結,希望對大家有所幫助,如果有錯誤地方歡迎指正。 一、前言 密碼學的歷史追溯到2000年前,相傳古羅馬凱撒大帝為了防止敵方截獲情報,用密碼傳送情報。凱撒大帝的做法比較簡單,通過對二十幾個羅馬字母表建立一張對應的表格,這樣如果不知道密碼,