我有一个要求,我必须实现一个脚本来将文件从远程 Solaris 服务器传输到 AWS S3 存储桶。我应该每 24 小时在我的 AWS EC2 实例上运行此脚本,以便它连接到远程 Solaris 服务器并将文件传输到 S3 存储桶。
谁能指导我如何实现这一点?谢谢。
我有一个要求,我必须实现一个脚本来将文件从远程 Solaris 服务器传输到 AWS S3 存储桶。我应该每 24 小时在我的 AWS EC2 实例上运行此脚本,以便它连接到远程 Solaris 服务器并将文件传输到 S3 存储桶。
谁能指导我如何实现这一点?谢谢。
最简单的方法是,您需要先使用 scp 将文件从远程服务器复制到本地 AWS 服务器;然后使用 AWS CLI commond "aws s3 cp" 将此文件复制到 s3 存储桶。该脚本应使用 crontab 每 24 小时调用一次。
在 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`