Amazon s3 s3cmd:备份到Amazon S3的文件夹
我使用s3cmd将我的数据库备份到AmazonS3,但我也想备份某个文件夹并将其存档 我有一部分成功地将数据库备份到S3:Amazon s3 s3cmd:备份到Amazon S3的文件夹,amazon-s3,tar,s3cmd,Amazon S3,Tar,S3cmd,我使用s3cmd将我的数据库备份到AmazonS3,但我也想备份某个文件夹并将其存档 我有一部分成功地将数据库备份到S3: # Loop the databases for db in $databases; do # Define our filenames filename="$stamp - $db.sql.gz" tmpfile="/tmp/$filename" object="$bucket/$stamp/$filename" # Feedback echo
# Loop the databases
for db in $databases; do
# Define our filenames
filename="$stamp - $db.sql.gz"
tmpfile="/tmp/$filename"
object="$bucket/$stamp/$filename"
# Feedback
echo -e "\e[1;34m$db\e[00m"
# Dump and zip
echo -e " creating \e[0;35m$tmpfile\e[00m"
mysqldump -u root -p$mysqlpass --force --opt --databases "$db" | gzip -c > "$tmpfile"
# Upload
echo -e " uploading..."
s3cmd put "$tmpfile" "$object"
# Delete
rm -f "$tmpfile"
done;
我如何添加另一个部分来归档某个文件夹,上传到S3,然后删除本地归档?未经测试且基本,但这应该通过一些小的调整完成工作
# change to tmp dir - creating archives with absolute paths can be dangerous
cd /tmp
# create archive with timestamp of dir /path/to/directory/to/archive
tar -czf "$stamp-archivename.tar.gz" /path/to/directory/to/archive
# upload archive to s3 bucket 'BucketName'
s3cmd put "/tmp/$stamp-archivename.tar.gz" s3://BucketName/
# remove local archive
rm -f "/tmp/$stamp-archivename.tar.gz"