Info
Content

Storage tools

Серия команд wal-g st позволяет взаимодействовать со стороджами
Помни что потенциально эти команды могут все сломать, поэтому надо быть внимательным и понимать что делаешь

  • ls - выводит список объектов в указанной папке
    wal-g st ls - список объектов
    wal-g st ls -r - рекурсивно
    wal-g st ls some_folder/some_subfolder - по указанному пути

  • get - скачивает указанный объект. По умолчанию попытается разжать и расшифровать (если настроенго)
    Есть два очевидных флага:

    • --no-decompress
    • --no-decrypt
  • cat - выводит указанный файл на STDOUT. По умолчанию не разжимает и не расшифровывает. Полезно для всяких метаинформационных файлов
    Есть два очевидных флага:

    • --decompress
    • --decrypt

    Пример:

    wal-g st cat path/to/remote_file.json
    
  • rm - удаляет объект
    Пример:

    wal-g st rm path/to/remote_file
    
  • put - загружает указанный файл в сторадж. По умолчанию попытается сжать и зашифровать (если настроено)
    Есть два очевидных флага:

    • --no-compress
    • --no-encrypt

    Пример:

    wal-g st put path/to/local_file path/to/remote_file
    
  • transfer - переносит все файлы из одного стораджа в другой. Обычно используется для переноса файлов с failover-стораджа на primary
    Аргумент один - путь до директории (на обоих стораджах) где лежат/будут лежать файлы которые должны быть перенесены
    Флаги:

    • -s (--source) - имя исходного стораджа из которого нужно взять файлы. Для указания на primary используй default (обязательный флаг)
    • -t (--target) - сторадж куда надо сохранить файлы (по умолчанию используется default)
    • -o (--overwrite) - мувнуть файлы даже если они уже есть на таргете. Если этот флаг не указан и файлы есть и там и там, то ничего не произойдет. Надо помнить что наличие файлов на таргете проверяется в начале, и если файл появится на таргете в момент выполнения команды, то он может быть затерт даже если не указан флаг -o
    • --fail-fast - остановит трансфер после первой же ошибки. Без этого флага он будет пытаться мувнуть все файлы. Независимо от наличия флага, exit-код команды будет нулевым только если все файлы успешно перенесены
      Держи в уме что если файлы не перенеслись автоматически, то если этот флаг будет установлен, то ошибка произошедшая с одним файлом, может прекратить перенос остальных файлов по середине. Таким образом часть файлов будет перенесена на таргет сторадж, но не удалена с исходного
    • -c (--concurrency) - задает кол-во воркеров которые будут таскать файлы
    • -m (--max) - лимит файлов которые могут быть перенесены одним запуском команды
    • --appearance-checks - устанавливает проверки для файлов, которые должны быть перенесены в таргет сторадж, которые должны быть выполнены после переноса и перед удалением файла из исходного стораджа
      Эта опция рекомендована для стораджей которые не гарантируют read-after-write consistency. Иначе перенос файла между такими стораджами может создать момент когда файл не существует на обоих стораджах, а это повлечет проблемы с восстановлением в этот период
    • --appearance-checks-interval - задает минимальный интервал между проверками того что файл появился на таргет-сторадже
      Длительность задается в голанговском time.Duration формате

    Примеры:

    wal-g st transfer / --source='my_failover_ssh'
    
    wal-g st transfer folder/single_file.json --source='default' --target='my_failover_ssh' --overwrite
    
    wal-g st transfer basebackups_005/ --source='my_failover_s3' --target='default' --fail-fast -c=50 -m=10000 --appearance-checks=5 --appearance-checks-interval=1s
    
No Comments
Back to top