使用 Python 一鍵配置 SVN 賬號和屬組信息
雖然現在 Git 已經很普及,但是我相信用 SVN 的公司仍然不少,那麼作為 SVN 配置管理員的話,就不可避免的涉及到賬號維護的問題,今天我們就說說如何通過 Python 腳本實現用戶的快捷維護。
如果手動維護用戶,一般需要三個步驟:
1.手動添加用戶
2.手動設置屬組
3.通知用戶設置結果
使用腳本後也是三步,但是效率卻大大提升:
1.輸入用戶名
2.輸入要設置的組名
3.按下回車,搞定
這裡面設置用戶和屬組是關鍵點,也是我們需要自動化起來的操作,下面分別給出實現的代碼(代碼部分建議橫屏查看):
這段是創建用戶的代碼,下面做下說明:
cur_file_dir() 函數功能是獲取執行腳本所在路徑;
htpasswd.exe 是從 Apache 目錄拷貝出來的工具,可以在指定文件添加指定的用戶名和密碼信息,命令行使用方法「htpasswd.exe -b [密碼文件] [用戶名] [密碼]」,更多使用說明請 Google;
REP_PATH 是我定義的一個全局變數,是我 SVN 倉庫的根目錄,目錄下會存放用戶和組設置的配置文件;
htpasswd 文件就是上面說的用戶信息存儲文件;
pwd 是我通過隨機數生成的以 sylan215@ 開頭的 13 位密碼;
execut_ret() 函數功能是執行指定程序並返回執行結果的,目前就是執行 htpasswd.exe 添加指定用戶信息;
接著我們來看看設置組信息的代碼:
對這個函數的說明:
本函數功能就是讀取組設置文件 groups.conf,檢查當前用戶是否存在於目標組裡面,如果存在直接返回,否則添加用戶到組裡面;
readfiles() 函數功能是一次讀出目標文件的所有內容;
writetofile() 函數功能是把指定內容寫入指定文件;
下面是最後的統一調用函數,以及入口函數實現:
說明:
sendcontextmail() 函數是公用的郵件通知函數;
統一處理函數可以處理一個用戶添加多個用戶組的情況;
入口函數可以處理多個用戶同時添加的情況,並且做了無限循環,這樣把窗口掛在伺服器上可以隨取隨用了;
上述代碼是基於 Python3.4 驗證通過的,其他版本應該同理;
上述說明是基於 Windows 進行實現的;
上述實現是基於 SVN 自帶的賬號和組管理系統的;
如果是基於 Windows 的賬號和組設置體系,代碼上比這個簡單:
以上,如果覺得有用,請幫忙轉發分享,不甚感激。
關注公眾號,支持作者:
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※Pyhton爬蟲實戰-抓取BOSS直聘職位描述和數據清洗
※花旗銀行將Python納入分析師培訓體系
TAG:Python |