• 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

  • 相关阅读:
    20170809--JS操作Select备忘
    20160711--C# 委托的三种调用示例(同步调用 异步调用 异步回调)【转载】
    C# 内存建表备忘
    富文本编辑器 CKeditor 配置使用
    20160520—JS打分控件
    20160513--js 弹出窗口带有iframe控件 备忘
    chart 简单应用
    mvc 简单整理
    ObjectDatasourse 的绑定及显示
    GridView 详述
  • 原文地址:https://www.cnblogs.com/james1207/p/3348002.html
Copyright © 2020-2023  润新知