批量备份脚本

写个小脚本纪念一下tee这个命令,批量备份http的源代码:

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

执行命令如下:

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 [选项][参数]

选    项:

  -a或--append :向文件中重定向时使用追加模式;
  -i或--ignore-interrupts  :忽略中断(interrupt)信号。

参数:

指定输出重定向的文件

时间: 2024-10-03 22:53:45

批量备份脚本的相关文章

华为批量备份脚本

#!/bin/bash#Route , Switch Device configuration Save script ip_file="ip_file" for str in $(cat ip_file)do{sleep 2;#if [[ $ignoreFirstLine =~^#. ]];thenif [[ $str == # ]]; thencontinue;fi#echo $str;str_arr=(${str//\,/ });#echo -e "ip : ${str

批量备份数据库脚本(PowerShell版)

开始 昨天备份一个数据库拿来测试,发现备份后的文件非常大.后来去检查下使用的备份脚本,原来之前的备份脚本没有压缩功能. 现把之前的备份脚本修改下,支持压缩备份,和支持仅复制备份(CopyOnly). 备份数据库(完整备份)脚本 (注:开初编写这脚本的目的是能批量备份数据库,提高工作效率,后面提到的还原数据库脚本也是如此.) <#=====================================================================#> ##备份数据库(完整备份

crt批量备份网络设备脚本

利用vbs脚本通过secureCRT远程登录来批量备份网络设备脚本 使用:打开secureCRT然后选择脚本,运行此脚本就可 此脚本调用e:/设备备份/ip.txt文件,此文件内格式:ip地址 用户名 密码 设备名 #$language = "VBScript" #$interface = "1.0" crt.Screen.Synchronous = True Sub Main Const ForReading = 1 ForWriting = 2 ForAppen

linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa

SQLServer 批量备份与还原

备份与还原是数据库避不开的主题,而作为DBA,经常会面临将一台机器上的所有数据库重新构建到一台新机器上的要求: 在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后, 下次再有这样的要求,必须又重头开始(估计做5次就能做得人狂吐):于是,我们需要一套应对这种频繁操作.耗时.耗精力 的通用处理方法,所以以下批处理脚本就诞生了. 脚本主要的功能: 1. 备份一个服务器上的所有数据库(当然你也可以选择),备份文件按数据库名+日期生成,以.bak

Oracle 自动化备份脚本

Oracle 日常RMAN备份脚本,很基础.但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询. 备份脚本,基于linux,windows环境需要适当修改.主脚本,会调用2,3步骤的rman.sql&status.sql $ more main.sh #set env #########################Change the below parameter for the different server################## expo

批量备份交换机路由器配置

作为一个技术不算厉害的网络运维工程师,需要定期备份网络设备的配置,如果一台一台手动地:打开CRT—ssh远程某台网络设备—disply cur—保存log文本,我曾经计算过,我这样子一台一台手动保存大约25台设备配置的时间得半个钟,这种繁杂重复的操作还是交给脚本语言完成能够事半功倍.我最近也是在不断学习python语言,但是目前我还没有用过python脚本语言做这个自动备份设备配置的实验,待我对python脚本语言足够了解透彻,我想到时候我就可以信心满满地写新的博客心得了. 基于管理的网络设备都

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

mysql备份脚本

对extmail数据库进行每天01:00完全热备份,并可以完全恢复! 一.先建立备份脚本,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi mysql_extmail_bak.sh #!/bin/bash # Program #    use mysqldump to Fully backup mysql data per week! BakDir=/mysqlback#要备份到的目录 LogFile=/var/log/bak.log#备份记录日志