本文共 1145 字,大约阅读时间需要 3 分钟。
写个小脚本纪念一下tee这个命令,批量备份http的源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | jason at XJX-Mac in ~ /Script $ cat backup.py #!/usr/bin/env python # -*- coding: utf-8 -*- from fabric.api import run from fabric.context_managers import env from fabric.context_managers import cd env .hosts = [ '10.11.12.101' , '10.11.12.102' , '10.11.12.111' , '10.11.12.112' , '10.11.12.131' , '10.11.12.181' , '10.11.12.182' ] env .user = 'root' env .password = 'mypassword' env .parallel = True def backup(): with cd ( "/data/httpd/source/" ): run( "pwd" ) run( "tar -Jcvf bak/httpd_`date +%Y%m%d`.tar.xz httpd" ) |
执行命令如下:
1 2 | jason at XJX-Mac in ~ /Script $ fab -f backup.py backup | tee backup.log |
输出:
生成已当前日期命名的xz压缩包,例如:httpd_20160104.tar.xz;脚本执行过程用tee命令输出到backup.log文件并在屏幕上实时打印出来。
补充说明:
tee
功能说明:tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。
存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。
语 法:tee [选项][参数]
选 项:
1 2 | -a或--append :向文件中重定向时使用追加模式; -i或--ignore-interrupts :忽略中断(interrupt)信号。 |
参数:
指定输出重定向的文件