Amazon s3 s3cmd:备份到Amazon 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

我使用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 -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"