MYSQL/PHP/ASP日期转时间戳
328 2023-04-03 02:31:29
我们希望将Windows机器(以及附加的EBS卷)的每日快照安排到S3,以便我们可以进行每日备份.
人们会认为这是一个非常常见的要求,并且可以通过AWS管理控制台提供,但是,它不是.有哪些方法?如何在Windows服务器上安排每日快照?
Linux上有几个可用于在线的脚本示例,但对于Windows来说并非如此.我看过http://sehmer.blogspot.com/2011/04/amazon-ec2-daily-snapshot-script-for.html以及https://github.com/ronmichael/aws-snapshot-scheduler.有没有人使用过这些方法之一并且有效吗?
我也考虑过像Skeddly这样的服务,乍看起来似乎很便宜,但是当你看到它用于几台服务器时,价格很快升级到这样一个点,在这一点上你可以创建自己的解决方案,然后你可以应用它未来的新服务器.有了Skeddly,我们将为每台服务器付费.
我们如何安排Windows实例的每日快照?
Amazon Web Services最近推出了适用于Windows的 announced PowerShell命令行工具,它与 AWS Tools for .NET SDK一起打包.AWS Powershell工具使创建快照变得非常容易:
New-EC2Snapshot "vol-371acd04" -Description "My Snapshot"
您可以像这样查询快照:
PS C:Program Files (x86)AWS ToolsPowerShell> Get-EC2Snapshot | moreSnapshotId : snap-18be2b28VolumeId : vol-371acd04Status : completedStartTime : 2012-12-28T08:17:00.000ZProgress : 100%OwnerId : 383816850479VolumeSize : 30Description : My SnapshotOwnerAlias :Tag : {}
确保安装了AWS Powershell工具,并创建一个计划任务,该任务使用类似于上面代码段的powershell脚本来安排快照,您应该做得很好.
已更新以查询附加的EBS卷:
要查询附加到您的实例的EBS卷,然后为每个卷创建快照,您可以执行以下操作:
# Find my instance ID from the EC2 metadata$myInstanceID = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")# Query for volumes that are attached to my Instance Id$volumes = (Get-EC2Volume).Attachment | where {$_.InstanceId -eq $myInstanceID } | Select VolumeId# Iterate through these volumes and snapshot each of themforeach ($volume in $volumes){ New-EC2Snapshot $volume.VolumeId -Description "My Snapshot"}