zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    MSSQL错误1069解决方法
    Xamarin的Mono for Android目前可运行于MIPS上
    Oracle大数据机和连接器产品支持与Hadoop和Cloudera Manager集成
    百度1
    恒生电子
    IGT中国
    经典笔试题——a和&a有什么区别
    腾讯HTTP协议1
    腾讯http协议2
    面向对象的三大特征
  • 原文地址:https://www.cnblogs.com/james1207/p/3348002.html
Copyright © 2011-2022 走看看