最近有朋友要帮忙写个脚本能够自动的备份相应的数据库的备份自动的进行双备份,一份备份到本地其他磁盘,一份备份到网络上的其他的机器上,根据他的需求,我们整理如下的范例:
1.每天晚上0:00在e:\db_bak\history\下面建一个目录
目录名:(根据当天日期创建)
e:\db_bak\history\20131010
e:\db_bak\history\20131011
2.将E:\db_bak\下面的所有.bak文件复制到e:\db_bak\history\20131011下面
同时将e:\db_bak\下面的所有的.bak文件复制到\\172.16.100.254\backup\20131011下面
没有该文件夹,需要创建
3.实现数据双备份,且将复制的数据log记录到一个Log.txt中,实现追加
格式为:
在20131011 112233时,已复制e:\db_bak\ orderdb_20131011112233_full.bak到e:\db_bak\history\20131011
在20131011 112233时,已复制e:\db_bak\ orderdb_20131011112233_log.bak到e:\db_bak\history\20131011
在20131011 112233时,已复制e:\db_bak\ orderdb_20131011112233_full.bak到\\172.16.100.254\backup\20131011
在20131011 112233时,已复制e:\db_bak\ orderdb_20131011112233_log.bak到\\172.16.100.254\backup\20131011
4. 删除e:\db_bak\下面所有的.bak文件
根据以上需求,我们编写出如下的Powershell脚本:
param定义餐宿
#Edit by Raymond,if you have question,Please contact me for more
(
[string] $baksource="d:\temp",
#定义备份源目录
[string] $bakdestination="d:\temp\bak",
#定义备份的目标路径
[string] $logfile="d:\log\log.txt",
#定义备份时候日志写入的文件
[string] $networkshare="\\localhost\kugou"
#定义备份的网络路径
)
$Dpath=$bakdestination+"\"+(Get-Date).tostring("yyyyMMdd")
#定义备份目录自动产生的目录路径,根据当天日期产生201310-11样式路径
New-PSDrive -Name s -Root $networkshare -PSProvider filesystem
#将网络路径映射到本地的S盘
Set-Location s:
$Npath="s:\"+(Get-Date).tostring("yyyyMMdd")
#定义我们复制的S盘复制的路径
$Nrealpath=$networkshare+"\"+(Get-Date).tostring("yyyyMMdd")
#定义网络复制实际路径
if (!(test-path -Path $dpath))
#如果复制路径的子目录不存在
{
set-location $bakdestination
New-Item -ItemType directory -Path $dpath
#自动新建这个目录
}
if (!(test-path $logfile))
#如果日志文件不存在
{
New-Item -ItemType file -Path $logfile
#自动新建文件
}
Set-Location $baksource
#定义到备份源目录
$fileitems=Get-ChildItem *.* -Include *.txt
#查询本目录下所有以txt结尾的文件
foreach($fileitem in $fileitems)
#根据查询到的文件进行循环
{
$copystring="在"+(Get-Date).tostring("yyyyMMdd HHmmss")+"时,已复制"+$fileitem.fullname+"到"+$Dpath
#生成需要写到日志中的内容
Copy-Item -Path $fileitem -Destination $dpath
#将文件拷贝到本地磁盘的备份目标目录
if($?)
#如果拷贝命令成功执行
{
$copystring |Out-File -Append -filepath $logfile
将日志写入到日志对应的目录文件
}
$Ncopystring="在"+(Get-Date).tostring("yyyyMMdd HHmmss")+"时,已复制"+$fileitem.fullname+"到"+$Nrealpath
#生成写入日志的文件
Copy-Item -Path $fileitem -Destination $Npath
#将内容拷贝到网络路径
if($?)
#如果命令成功执行
{
$Ncopystring |Out-File -Append -FilePath $logfile
#将日志记录到相应的日志文件中
Remove-Item -Path $fileitem
#同时删除掉相应的目录文件
}
}
Remove-PSDrive s
#删除映射的S盘
执行以后,我们在相应的目录能够发现文件:
网路路径:
接下来我们查看下日志:
基本上达成了相应的目标
分享到:
相关推荐
博文链接:https://zsp.iteye.com/blog/246859
使用 powershell 自动化 Git 提交和备份 这是一个用于添加、提交和推送您的 GitHub 存储库到您的 GitHub 个人资料的脚本。 就其本身而言,它仍然非常棒,但是如果您将其设置为计划任务,则意味着您可以不假思索地...
Restic Windows备份Powershell脚本可在Windows上运行Restic备份。 简化了安装和运行每日备份的过程。特征VSS(卷快照服务)支持-备份所有内容,不必担心打开/使用中的文件易于安装- install.ps1脚本下载Restic,初始...
本书全面地介绍了Windows Server 2008命令行、PowerShell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理、网络服务管理、系统诊断、故障恢复、系统安全、批处理和配置文件,...
AWS-SQLIO-基准-Powershell Powershell脚本可在AWS EBS Volumes上自动执行SQLIO基准测试。 概述在AWS上运行SQL Server(在RDS上或在EC2上托管自己SQL Server)时,应仔细考虑您的存储选项。 提供最佳性能和高可用性...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
完全自动化的CI / CD解决方案,用于(不仅是)Active Directory环境中的PowerShell内容管理 信息库包含必要的文件+安装程序,它们将创建您自己的完全自动化的公司CD / CD之类的信息库,可用于管理(主要)PowerShell...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
PowerShell 旨在扩展 Command shell 的功能,以运行名为 cmdlet 的 PowerShell 命令。 Cmdlet 类似于 Windows 命令,但提供更具可扩展性的脚本语言。 可以在 PowerShell 中 同时运行 Windows 命令和 Powe
除此之外,主要功能还包括支持HTML5的Web界面、PowerShell脚本和自动化、存储库管理委派、远程服务器管理、访问和操作记录等,功能超级强大和齐全,只需点击几下,您就可以设置功能齐全且易于使用的Subversion服务器
对您编辑的每个文件进行备份! 轻松复制/粘贴修复: 下载预修改的app.js: : 复制/粘贴到: C:\Program Files\NVIDIA Corporation\NVIDIA GeForce Experience\www\ 自动安装轻松解决: 右键单击Install-Fix....
VisualSVN Server允许您在Windows平台上轻松安装和管理功能齐全的Subversion服务器。由于其强大的功能,无与伦比的可用性和独特的企业级功能,...PowerShell脚本和自动化 存储库管理委派 远程服务器管理 访问和操作记录
以及用于轻松编辑Markdown的IDE Visual Studio Code(使用Yu提供的Markdown All in One扩展张) 因此,Powershell也将被使用和定制,例如用于添加有用的别名和功能。 目录: 2. Debian 相应Linux Debian机器的目的...
" " " "提供Powershell的脚本管理功能。 " " " "提供备份压缩的功能 " " " "提供数据质量管理服务,通过建立数据质量知识库" " " "和定义规则,在数据集成阶段通过基于规则的方式" " " ",将数据进行自动的清洗操作...
入门指南vim-config :@KGuan提供的Vim配置 goWiki用编写的降价工具ARCH Linux映像 PCS百度云下载工具(蝙蝠) Github问题备份工具(Powershell) storgeGo键值存储系统(服务器端),用Go编写storgeGo Python SDK ...
3.1 管理SQL Server的组件功能 3.2 配置SQL Server服务 3.2.1 管理服务配置 3.2.2 管理服务的状态和启动模式 3.2.3 设置启动的服务帐户 3.2.4 配置文件流 3.2.5 配置服务转储目录、错误报告和客户反馈报告 3.3 管理...
3.1 管理SQL Server的组件功能 3.2 配置SQL Server服务 3.2.1 管理服务配置 3.2.2 管理服务的状态和启动模式 3.2.3 设置启动的服务帐户 3.2.4 配置文件流 3.2.5 配置服务转储目录、错误报告和客户反馈报告 3.3 管理...
3.1 管理SQL Server的组件功能 3.2 配置SQL Server服务 3.2.1 管理服务配置 3.2.2 管理服务的状态和启动模式 3.2.3 设置启动的服务帐户 3.2.4 配置文件流 3.2.5 配置服务转储目录、错误报告和客户反馈报告 3.3 管理...