0

データベースを Amazon S3 にバックアップするために s3cmd を使用していますが、特定のフォルダーをバックアップしてアーカイブしたいと考えています。

データベースを 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 にアップロードしてから、ローカル アーカイブを削除するにはどうすればよいですか?

4

1 に答える 1

0

テストされていない基本的なものですが、これはいくつかの小さな調整で仕事を成し遂げるはずです

# 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"
于 2014-07-30T13:29:56.317 に答える