Rsync do wiadra AWS S3

26

W przypadku serwera prowadzę witrynę internetową, na której chcę wykonać kopię zapasową danych i ustawień w segmencie S3. Dowiedziałem się, że nie można bezpośrednio używać rsync do tworzenia kopii zapasowych w segmencie S3. Czy istnieje inny sposób uzyskania następującego polecenia rsync w celu utworzenia kopii zapasowej danych w segmencie S3?

rsync -­av ­/Data /s3bucket

Chcę również wykonać kopię zapasową bazy danych mysql na tym serwerze do segmentu S3. Jaki jest najlepszy sposób na osiągnięcie tego?

Ostatnie pytanie, czy udało mi się wykonać kopię zapasową wszystkiego na S3. Jaki jest najlepszy sposób przywrócenia serwera, jeśli ulegnie awarii lub w najgorszym przypadku zostanie całkowicie wyczyszczony? Czy muszę osobiście zanotować ustawienia serwera i ponownie skonfigurować serwer, czy jest też sposób na wykonanie kopii zapasowej?

Bart Bergmans
źródło

Odpowiedzi:

35

Aby komunikować się z s3, musisz mieć 2 rzeczy

  1. Poświadczenia użytkownika IAM, który ma dostęp do odczytu i zapisu w segmencie s3.
  2. Klient taki jak aws-cli dla bash, biblioteka boto dla Pythona itp.

gdy masz oba, możesz przenieść dowolny plik z komputera na s3 i z s3 na swój komputer. Poniżej znajduje się przykład aws-cli.

  1. aby zsynchronizować wszystkie pliki w folderze

    aws s3 sync source_folder s3://your_bucket_name/destination_folder/

  2. aby skopiować jeden plik do s3

    aws s3 cp source_file s3://your_bucket_name/destination_folder/

wystarczy zastąpić źródło i miejsce docelowe w poleceniu, aby pobrać dowolny plik z s3.

Aby uzyskać więcej informacji, postępuj zgodnie z dokumentami aws

Gaurav Pundir
źródło
1
Uwaga: prawdopodobnie będziesz chciał najpierw uruchomić „aws config”, aby zapisać swoje poświadczenia, abyś nie musiał wprowadzać ich przy każdej synchronizacji.
Tim Burch,
1
Warto zauważyć, że rsyncoblicza sumy kontrolne, po stronie klienta i serwera, a następnie porównuje je, aby dokładnie zdecydować, czy plik się zmienił. Chociaż aws s3 syncnie - wykorzystuje rozmiary plików i znaczniki czasu. Niech ktoś mnie poprawi, jeśli się mylę?
Lqueryvg
13

Możesz spróbować rclone .

Konfiguracja ( dokumenty ):

rclone config

Synchronizacja ( dokumenty ):

rclone sync /my/local/folder s3service:bucket-name
Keith
źródło
2
rcloneto fantastyczne małe narzędzie!
Andrew Odendaal,
1
1+ rclone, uważam, że v. Jest łatwy w użyciu, a programista wydaje się niezwykle aktywny i angażujący
adampski
Brzmi nieźle, ale czy możesz rozwinąć przewagę nad aws s3 sync?
Kutzi
Spełnia wymagania OP dotyczące używania rsync. Nie korzystałem z synchronizacji s3 ani rclone z s3, więc nie wiem więcej.
Keith