Если вы хотите скопировать две корзины S3 в фоновом режиме, мы вам поможем! В этой статье мы рассмотрим различные методы, в том числе популярную команду nohup, позволяющую легко выполнить эту задачу. Итак, возьмите свой любимый напиток, расслабьтесь и начнем!
Метод 1: использование команды nohup
Команда nohup позволяет запускать команду в фоновом режиме даже после выхода из терминала. Вот как вы можете использовать его для одновременного копирования двух сегментов S3:
Шаг 1. Откройте терминал или SSH для подключения к серверу.
Шаг 2. Выполните следующую команду:
nohup aws s3 sync s3://source-bucket-name s3://destination-bucket-name &> copy.log &
Объяснение:
- Команда
aws s3 syncсинхронизирует содержимое исходного сегмента с целевым сегментом. s3://source-bucket-name– это имя исходного сегмента.s3://destination-bucket-name— название целевого сегмента.&> copy.logперенаправляет как стандартный вывод, так и вывод ошибок в файл журнала с именемcopy.log.- Последний символ
&запускает команду в фоновом режиме.
Метод 2: использование GNU Screen
GNU Screen — это мощный терминальный мультиплексор, который позволяет создавать несколько терминальных сеансов в одном окне. Вот как вы можете его использовать:
Шаг 1. Установите GNU Screen, если он еще не установлен в вашей системе.
Шаг 2. Откройте терминал или SSH на своем сервере.
Шаг 3. Запустите новый сеанс экрана, выполнив следующую команду:
screen -S s3-copy
Шаг 4. В сеансе экрана выполните следующие команды, чтобы скопировать два сегмента:
aws s3 sync s3://source-bucket-name s3://destination-bucket-name &> copy1.log
Нажмите Ctrl+A, затем c, чтобы создать новое окно экрана, а затем выполните следующую команду:
aws s3 sync s3://source-bucket-name2 s3://destination-bucket-name2 &> copy2.log
Объяснение:
- Опция
-S s3-copyв командеscreenприсваивает имя сеансу экрана. - Вы можете переключаться между несколькими экранными окнами, используя
Ctrl+A, а затемn(следующий) илиp(предыдущий). - Каждая команда
aws s3 syncсинхронизирует содержимое исходного сегмента с целевым сегментом. - Замените названия сегментов
source-bucket-name,destination-bucket-name,source-bucket-name2иdestination-bucket-name2реальными именами сегментов. &> copy1.logи&> copy2.logперенаправляют выходные данные команды в отдельные файлы журналов.
Метод 3: использование сценария Bash и фоновых процессов
Другой подход — создать сценарий Bash, который запускает команды копирования в качестве фоновых процессов. Вот пример:
Шаг 1. Создайте новый файл с именем copy_script.shи откройте его в текстовом редакторе.
Шаг 2. Добавьте в скрипт следующее содержимое:
#!/bin/bash
# Copying bucket 1
aws s3 sync s3://source-bucket-name s3://destination-bucket-name &> copy1.log &
# Copying bucket 2
aws s3 sync s3://source-bucket-name2 s3://destination-bucket-name2 &> copy2.log &
Шаг 3. Сохраните скрипт и сделайте его исполняемым, выполнив следующую команду:
chmod +x copy_script.sh
Шаг 4. Выполните скрипт в фоновом режиме:
nohup ./copy_script.sh &
Объяснение:
- Скрипт Bash выполняет каждую команду
aws s3 syncкак отдельный фоновый процесс. - Символ
&в конце каждой команды запускает ее в фоновом режиме. - Команда
nohupгарантирует, что сценарий продолжит работу даже после выхода из системы.
Копировать два сегмента S3 в фоновом режиме теперь стало проще, чем когда-либо, благодаря таким методам, как использование команды nohup, GNU Screen и сценариев Bash. Выберите подход, который соответствует вашим требованиям, и наслаждайтесь беспроблемным копированием!