ITPub博客

首页 > 数据库 > Oracle > Python sh库学习 上篇

Python sh库学习 上篇

原创 Oracle 作者:幕南风 时间:2014-07-03 14:10:26 0 删除 编辑
官方文档有句话"allows you to call any program",并且:
helps you write shell scripts in Python by giving you the good features of Bash
第一句话助你在Python中轻松调用自己的程序,第二句则给你机会和Shell这种土豪交朋友

㈠ 调用系统的程序

>>> 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

㈢ bake命令参数

>>> import sh
>>> du=sh.du.bake(\'-shc\')
>>> print (du(\'/home/mysql\'))
1.1G	/home/mysql
1.1G	总计

㈣ 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

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1208227/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Linux OOM-killer
下一篇: MySQL SQL Tuning:深入理解Order By
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章