Python shライブラリ学習前編
2061 ワード
公式ドキュメントには「allows you to call any program」という言葉があります.そして、helps you write shell scripts in Python by giving you the good features of Bash最初の言葉はPythonで自分のプログラムを簡単に呼び出すのに役立ち、2番目の文はShellのような土豪と友达になる機会を与えます.
システムを呼び出すプログラム
二自分のプログラムを呼び出す
3 bakeコマンドパラメータ
4 globリストファイル
五管路
パイプは秩序正しく、デフォルトは内側から外側ですが、並列が必要な場合は?追加_piped=True
By DBA_WaterBin
2013-09-30
Good Luck
システムを呼び出すプログラム
>>> import sh
>>> print(sh.ls('/home/mysql'))
cdio_bak.sql mysql-5.5.16.tar.gz
mm percona-xtrabackup-2.1.4-656-Linux-i686.tar.gz
mysql percona-xtrabackup-2.1.4-Linux-i686
mysql-5.5.16 startmysql.sh
二自分のプログラムを呼び出す
>>> import sh
>>> r=sh.Command('/root/dd.py')
>>> r()
hello,DBA
3 bakeコマンドパラメータ
>>> import sh
>>> du=sh.du.bake('-shc')
>>> print (du('/home/mysql'))
1.1G /home/mysql
1.1G
4 globリストファイル
>>> import sh
>>> list=sh.glob('/root/mm/*')
>>> print list
['/root/mm/Backup', '/root/mm/Usplash', '/root/mm/AWN', '/root/mm/Wallpapers', '/root/mm/GRUB', '/root/mm/Mozilla']
五管路
>>> print(sh.sort(sh.du(sh.glob('*'),'-shc'),'-rn'))
712K distribute-0.6.49.tar.gz
672K setuptools-1.1.5.tar.gz
548K get-pip.py
パイプは秩序正しく、デフォルトは内側から外側ですが、並列が必要な場合は?追加_piped=True
>>> for line in sh.tr(sh.tail("-f", "/home/mysql/mysql/log/alert.log", _piped=True), "[:upper:]", "[:lower:]", _iter=True):
... print line
...
innodb: doublewrite buffer not found: creating new
innodb: doublewrite buffer created
innodb: 127 rollback segment(s) active.
innodb: creating foreign key constraint system tables
innodb: foreign key constraint system tables created
By DBA_WaterBin
2013-09-30
Good Luck