从远程Solaris服务器到AWS S3存储桶的FTP​​文件

时间:2018-11-01 16:04:03

标签: amazon-web-services amazon-s3 amazon-ec2 scp aws-batch

我有一个要求,我必须实现一个脚本以将文件从远程Solaris服务器传输到AWS S3存储桶。 我应该每24小时在我的AWS EC2实例上运行此脚本一次,以便它连接到远程Solaris服务器并将文件传输到S3存储桶。

有人可以指导我如何实现这一目标吗?谢谢。

2 个答案:

答案 0 :(得分:1)

最简单的方法是,您首先需要使用scp将文件从远程服务器复制到本地AWS服务器。然后使用AWS CLI Commond“ aws s3 cp”将此文件复制到s3存储桶。应该使用crontab每24小时调用一次此脚本。

答案 1 :(得分:0)

在mynightbackup下面更改为您的AWS S3存储桶的名称。 将include_dirs.txt的路径放入要备份的目录。 像这样手动运行:

nohup ./file_server_backup_to_aws_s3.sh 2>&1 &

或将file_server_backup_to_aws_s3.sh放入CRON中,以每24小时运行一次。

这会将日志写入名为以下内​​容的日志文件: file_server_backup_to_aws_s3.log 您可以在nohup.out中查看脚本的输出。 aws命令行上的sync将同步那些对象,类似于rsync的工作原理。

#!/bin/bash
# Program Name: file_server_backup_to_aws_s3.sh
# Purpose:      Upload files to AWS S3 remote backup
#
# Usage:
#        nohup ./file_server_backup_to_aws_s3.sh 2>&1 &
echo -e "\nstart:" `date`
LOG="file_server_backup_to_aws_s3.log"
rm -rf $LOG
for SOURCE in `cat include_dirs.txt`
do
aws s3 sync $SOURCE "s3://mynightbackup"$SOURCE"/" --delete --output text >>$LOG
done
echo -e "end:" `date`