3

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

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

4

2 回答 2

1

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

于 2018-11-01T16:39:05.913 回答
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`
于 2019-12-14T05:37:43.043 回答