摘要:創業公司,但也逐漸積累了十多態服務器,有時候因為一點小疏忽,就導致了十多臺服務器返工,剛開始會使用一臺一臺登上去修改,或者一個一個上傳,基本上只要發生一點錯誤,就會花去小半天時間,這不是最重要的,最重要的是,小半天時間都在做一件重復的事鏈接
創業公司,但也逐漸積累了十多態服務器,有時候因為一點小疏忽,就導致了十多臺服務器返工,剛開始會使用ssh一臺一臺登上去修改,或者scp、sftp一個一個上傳,基本上只要發生一點錯誤,就會花去小半天時間,這不是最重要的,最重要的是,小半天時間都在做一件重復的事:ssh鏈接 -> 找到文件目錄 -> 修改 (或者:scp上傳 -> 查看效果 ......)
時間久了,就再也不想這樣干了,于是學習了python,寫了一段利用scp上傳文件的腳本:
引入包: paramiko
引入服務器的配置:from config.server import server_data
添加下面的代碼:
#!/usr/bin/python # -*- coding: UTF-8 -*- import paramiko from config.server import server_data # 服務器配置數據 import sys reload(sys) sys.setdefaultencoding("utf8") # 建立多帶帶的scp鏈接 def trans (hostname, username, password, port, sites): scp = paramiko.Transport((hostname, port)) scp.connect(username=username, password=password) sftp = paramiko.SFTPClient.from_transport(scp) for v in sites: print v u = "/host/sites/" + v["domain"] + "/msites/public/images/12124.png" # 文件在服務器中存儲的路徑 print u try: sftp.put("./upload/12124.png", u) # 文件本地存儲路徑 except Exception as e: print "Error: %s" % e pass sftp.close() # 執行每個網站 def main (): i = 0 for data in server_data: i = i + 1 print i trans(data["hostname"], data["username"], data["password"], data["port"], data["sites"]) if __name__ == "__main__": main()
服務器配置:
server_data = [
{ "hostname": "", # 需要填寫 "id": , # 需要填寫 "username": "root", "port": 22, # 需要填寫 "password": "", # 需要填寫 "sites": [ { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, ] }, { "hostname": "", "id": , "username": "root", "port": 22, "password": "", "sites": [ { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, { "name": "百度".decode("utf-8"), "domain": "baidu.com", "alias": "bd", "fallname": "百度".decode("utf-8") }, ] }
];
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38345.html
摘要:扔在一邊很久了,最近剛好有幾天閑,買了本復習一下。這是第一部分和數據處理。返回當前作用域下的本地變量。這個更好玩兒,模塊里面包含了異常和一些其他的對象。庫中變量是一個保存環境變量的字典,可以通過訪問字典值得方式獲得一些環境變量的值。 python扔在一邊很久了,最近剛好有幾天閑,買了本《Head First Python》復習一下。 跟python結緣是因為教C語言的王青老師推薦我們邊...
摘要:前面兩個期望的采樣我們都熟悉,第一個期望是從真樣本集里面采,第二個期望是從生成器的噪聲輸入分布采樣后,再由生成器映射到樣本空間。 Wasserstein GAN進展:從weight clipping到gradient penalty,更加先進的Lipschitz限制手法前段時間,Wasserstein ?GAN以其精巧的理論分析、簡單至極的算法實現、出色的實驗效果,在GAN研究圈內掀起了一陣...
閱讀 2703·2023-04-25 19:13
閱讀 4041·2021-09-22 15:34
閱讀 3061·2019-08-30 14:23
閱讀 1470·2019-08-29 17:17
閱讀 1611·2019-08-29 16:05
閱讀 1544·2019-08-29 13:26
閱讀 1223·2019-08-29 13:19
閱讀 561·2019-08-29 13:16