• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

Python sh库学习 上篇

官方文档有句话"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

 

posted @ 2013-09-30 22:04  Class Xman  阅读(733)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3