【问题标题】:FTP file from remote Solaris server to AWS S3 bucket从远程 Solaris 服务器到 AWS S3 存储桶的 FTP 文件
【发布时间】:2019-04-05 21:30:57
【问题描述】:

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

谁能指导我如何实现这个?谢谢。

【问题讨论】:

  • 你做了什么?这听起来像是一个非常简单的 shell 脚本——ssh 从 EC2 到 Solaris 盒子,让它将文件推送到 S3 或从 Solaris FTP 到 EC2 盒子,然后推送到 S3。你被什么困住了?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在 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`
    

    【讨论】: