導航:首頁 > 編程語言 > python寫linux服務

python寫linux服務

發布時間:2022-07-14 17:32:55

『壹』 pythonlinux 系統運維中都有哪些應用

我更喜歡用系統管理形容運維項工作運維聽起偏執行項工作python系統管理優勢與強發能力完整工具鏈python工程發能力強遠強於各種shellperl易讀易寫兼具面向象函數式風格錯元編程能力通系統化各種管理工具結合述各類工具進行二發形統伺服器管理系統
python類似ruby適合編寫系統管理軟體相關庫工具比python差太

舉栗: 某牛精通 bash,python,perl,ruby ,工作寫數百單功能腳本(任何語言)進行操作涵蓋監控部署網路配置志析安全檢測 等等許許面所包所作操作並沒系統管理項工作做再腳本操作行做極致寫再腳本能轉化公司系統管理寶貴資產

讓系統易於管理工程像puppet(ruby)saltstack(python) 自化管理工具才能完整描述整系統並且讓系統管理面面納入統體系堆腳本
python伺服器管理工具非豐富配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進程管理 (supervisor) 雲計算(openstack) ...... 部系統C庫都python綁定
於流程確定事情終定納入系統管理體系寫程序系統部復用游離與整體各種腳本
隨著雲計算代臨型公司需要運維型公司沒工程發能力運維沒競爭力

『貳』 linux上啟動python程序,shell腳本服務怎麼編寫

1. 只能夠輸入Python命令

在Python交互模式下輸入Python代碼,而不要輸入系統的命令。

2. 在交互模式下列印語句不是必須的 。

在交互模式下不需要輸入完整的列印語句,解釋器自動列印表達式的結果,但是在文件中則需要寫print 語句來列印結果。

3. 提示符的變換和復合語句 。

當在交互模式下輸入兩行或多行的復合語句時,提示符會由>>> 變成 …;如果要結束復合語句的輸入並執行它,那麼必須按下Enter鍵兩次,復合語句才會被執行。

4. 交互提示模式一次運行一條語句 。

當你想測試某一條命令的時候,交互模式是一個很好的測試方法,輸入然後回車即可看到執行結果,非常方便,當然對於復合語句來說,只要最後按兩次Enter鍵即可運行代碼,看到執行結果。

具體如下:

1、簡介

Linux操作系統是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。

2、基本信息

Linux[2]操作系統是UNIX操作系統的一種克隆系統,它誕生linux系統於1991 年的10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。

3、分區規定

設備管理在 Linux 中,每一個硬體設備都映射到一個系統的文件,對於硬碟、光碟機等,IDE 或 SCSI 設備也不例外。Linux 把各種 IDE 設備分配了一個由 hd 前綴組成的文件;而對於各種 SCSI 設備,則分配了一個由 sd 前綴組成的文件。

『叄』 怎麼讓我的python程序 在linux上以服務的形式運行

編輯用戶的Crontab文件

crontabl -e

名稱 : crontab
使用許可權 : 所有使用者
使用方式 :
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
說明 :
crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user
的時程表,這個前提是你必須要有其許可權(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
餐數 :
-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分鍾,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。
當 f1 為 * 時表示每分鍾都要執行 program,f2 為 * 時表示每小時都要執行程序,其餘類推
當 f1 為 a-b 時表示從第 a 分鍾到第 b 分鍾這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鍾個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鍾要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推
使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
例子 :
每月每天每小時的第 0 分鍾執行一次 /bin/ls :
0 7 * * * /bin/ls

在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鍾執行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信給 [email protected] :
0 17 * * 1-5 mail -s "hi" [email protected] /dev/null 2>&1 即可
例:如果用戶的Crontab文件的內容是:29 19 * * * echo its dinner time,則系統每天的19:29顯示『its dinner time』
示例(創建一個cron全過程,每分鍾都會在test.txt里輸入當前時間):

1. 以普通用戶登錄linux系統(我用的是CentOS4.1)

2. $crontab –e
說明:系統默認的編輯器是VIM,如果不是請加上以下shell:
$EDITOR=vi
$export EDITOR

3. 輸入」*/1 * * * * date >> $HOME/test.txt」,save and exit VIM

4. $su root

5. $cd /etc/init.d

6. ./crond restart

下面看看看幾個具體的例子:
● 0 */2 * * * /sbin/service httpd restart 意思是每兩個小時重啟一次apache

● 50 7 * * * /sbin/service sshd start 意思是每天7:50開啟ssh服務

● 50 22 * * * /sbin/service sshd stop 意思是每天22:50關閉ssh服務

● 0 0 1,15 * * fsck /home 每月1號和15號檢查/home 磁碟

● 1 * * * * /home/bruce/backup 每小時的第一分執行 /home/bruce/backup這個文件

● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3點鍾,在目錄/home中,查找文件名為*.xxx的文件,並刪除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30執行一次ls命令

『肆』 python linux怎麼操作

1. os 模塊

1.1. os模塊的exec方法族

Python的exec系統方法同Unix的exec系統調用是一致的。這些方法適用
於在子進程中調用外部程序的情況,因為外部程序會替換當前進程的代碼,不會返回。( 這個看了點 help(os) --> search
"exec" 的相關介紹,但是沒太搞明白咋使用)

1.2. os模塊的system方法

system方法會創建子進程運行外部程序,方法只返回外部程序的運行結果。這個方法比較適用於外部程序沒有輸出結果的情況。

[python]
view plain

>>> import os
>>> os.system("echo \"Hello World\"") # 直接使用os.system調用一個echo命令
Hello World ——————> 列印命令結果
0 ——————> What's this ? 返回值?
>>> val = os.system("ls -al | grep \"log\" ") # 使用val接收返回值
-rw-r--r-- 1 root root 6030829 Dec 31 15:14 log ——————> 此時只列印了命令結果
>>> print val
0 ——————> 注意,此時命令正常運行時,返回值是0
>>> val = os.system("ls -al | grep \"log1\" ")
>>> print val
256 ——————> 使用os.system調用一個沒有返回結果的命令,返回值為256~
>>>

注意:上面說了,此方法脂肪會外部程序的結果,也就是os.system的結果,所以如果你想接收命令的返回值,接著向下看~

1.3. os模塊的popen方法

當需要得到外部程序的輸出結果時,本方法非常有用,返回一個類文件對象,調用該對象的read()或readlines()方法可以讀取輸出內容。比如使用urllib調用Web API時,需要對得到的數據進行處理。os.popen(cmd) 要得到命令的輸出內容,只需再調用下read()或readlines()等 如a=os.popen(cmd).read()

[python]
view plain

>>> os.popen('ls -lt') # 調用os.popen(cmd)並不能得到我們想要的結果
<open file 'ls -lt ', mode 'r' at 0xb7585ee8>
>>> print os.popen('ls -lt').read() # 調用read()方法可以得到命令的結果
total 6064
-rwxr-xr-x 1 long long 23 Jan 5 21:00 hello.sh
-rw-r--r-- 1 long long 147 Jan 5 20:26 Makefile
drwxr-xr-x 3 long long 4096 Jan 2 19:37 test
-rw-r--r-- 1 root root 6030829 Dec 31 15:14 log
drwxr-xr-x 2 long long 4096 Dec 28 09:36 pip_build_long
drwx------ 2 Debian-gdm Debian-gdm 4096 Dec 23 19:08 pulse-gylJ5EL24GU9
drwx------ 2 long long 4096 Jan 1 1970 orbit-long
>>> val = os.popen('ls -lt').read() # 使用變數可以接收命令返回值
>>> if "log" in val: # 我們可以使用in來判斷返回值中有木有一個字元串
... print "Haha,there is the log"
... else:
... print "No,not happy"
...
Haha,there is the log

2. commands 模塊

使用commands模塊的getoutput方法,這種方法同popend的區別在於popen返回的是一個類文件對象,而本方法將外部程序的輸出結果當作字元串返回,很多情況下用起來要更方便些。
主要方法:

* commands.getstatusoutput(cmd) 返回(status, output)
* commands.getoutput(cmd) 只返回輸出結果
* commands.getstatus(file) 返回ls -ld file的執行結果字元串,調用了getoutput,不建議使用此方法

[python]
view plain

long@zhouyl:/tmp/tests$ python
Python 2.7.3 (default, Jan 2 2013, 16:53:07)
[GCC 4.7.2] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import commands
>>> commands.getstatusoutput('ls -lt') # 返回(status, output)
(0, 'total 5900\n-rwxr-xr-x 1 long long 23 Jan 5 21:34 hello.sh\n-rw-r--r-- 1 long long 147 Jan 5 21:34 Makefile\n-rw-r--r-- 1 long long 6030829 Jan 5 21:34 log')
>>> commands.getoutput('ls -lt') # 返回命令的輸出結果(貌似和Shell命令的輸出格式不同哈~)
'total 5900\n-rwxr-xr-x 1 long long 23 Jan 5 21:34 hello.sh\n-rw-r--r-- 1 long long 147 Jan 5 21:34 Makefile\n-rw-r--r-- 1 long long 6030829 Jan 5 21:34 log'
>>> commands.getstatus('log') # 調用commands.getoutput中的命令對'log'文件進行相同的操作
'-rw-r--r-- 1 long long 6030829 Jan 5 21:34 log'
>>>

3. subprocess模塊

根據Python官方文檔說明,subprocess模塊用於取代上面這些模塊。有一個用Python實現的並行ssh工具—mssh,代碼很簡短,不過很有意思,它在線程中調用subprocess啟動子進程來幹活。

[python]
view plain

>>> from subprocess import call
>>> call(["ls", "-l"])

subprocess與system相比的優勢是它更靈活(你可以得到標准輸出,標准錯誤,「真正」的狀態代碼,更好的錯誤處理,等..)。我認為使用os.system已過時,或即將過時。

『伍』 python腳本用於linux伺服器主要是實現自動化嗎哪裡有書和教程

恩。推薦一個地方 皮皮書屋,裡面有很多python方面的書,當然也有你想的,比如python for linux administrator,就是用python做自動化處理的,比如處理日誌、處理網路配置等等。

『陸』 如何用Python寫Linux命令

[root@qiansw tmp]# cat test.py #這是一個python示常式序
#!/usr/bin/python
for i in range(0,5):
print i
[root@qiansw tmp]# ll
total 48
-rw-r--r-- 1 root root 48 Oct 30 11:04 test.py
[root@qiansw tmp]# chmod +x test.py #為腳本增加執行許可權
[root@qiansw tmp]# ./test.py #這是第一種方法

[root@qiansw tmp]# python test.py #這是第二種方法,不用增加執行許可權

『柒』 python腳本怎麼執行linux系統命令

打開apache服務其實就一條,就是執行{type httpd}所得到的執行文件。
#!/usr/bin/python
#!coding=<utf-8>
import os
os.system("service httpd start")
#這樣就執行完了,os模塊還有其他可用方法,比如popen(),請參考標准模塊手冊。

閱讀全文

與python寫linux服務相關的資料

熱點內容
解壓的玩具教程可愛版 瀏覽:364
哪個求職app比較靠譜 瀏覽:886
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1002
數碼科技解壓 瀏覽:235
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:571
計算機編譯運行 瀏覽:639
單片機嵌套 瀏覽:988
python字元串中符號 瀏覽:787
python正則表達式貪婪模式 瀏覽:648
愛國精神指的是什麼app 瀏覽:408
壽司解壓系列全集視頻 瀏覽:913
物體三維重建演算法 瀏覽:984
fuli直播app哪個好 瀏覽:918
租辦公室用什麼app 瀏覽:106
醫師定期考核刷題app哪個好 瀏覽:338
導出dmp文件命令 瀏覽:288
手機百度網盤怎麼解壓密碼文件 瀏覽:585
索引重新編譯 瀏覽:606