safely-upload-server-script-scp-check-apply-tip.png
Швидка порадаLinux / Nginx

Як безпечно передати скрипт на сервер: scp, --check, потім --apply

Передайте архів через scp на SSH alias, підключіться до сервера, розпакуйте його і спочатку запустіть лише --check. --apply виконуйте тільки після перевірки результату.

Коли потрібно передати на production сервер скрипт, який змінює конфігурацію або захист сервера, я не запускаю його одразу після копіювання.

Простий сценарій: передати архів через scp, підключитися через SSH alias, запустити тільки --check, перевірити результат і лише потім виконувати --apply.

1. Передайте архів через SSH alias

BASH - Передати архів на сервер
scp ~/Downloads/server-protection.zip \    production-vps:~/

SSH alias на кшталт production-vps уже містить параметри підключення в ~/.ssh/config, тому IP, користувача, порт і ключ не потрібно щоразу вводити вручну.

Архів спочатку потрапляє у домашній каталог користувача, а не поверх робочого файла або production-конфігурації.

2. Підключіться до сервера

BASH - Підключитися через SSH alias
ssh production-vps

3. Розпакуйте і запустіть тільки перевірку

BASH - Спочатку тільки --check
cd ~ || exit 1 unzip -o server-protection.zip sudo bash server-protection.sh --check

--check повинен перевірити поточний стан і показати, чи готове середовище до змін. На цьому етапі production-конфігурація не повинна змінюватися.

Якщо перевірка показує помилку, неправильний шлях, неочікувану конфігурацію або іншу проблему, процес можна зупинити до будь-яких змін.

Не запускайте --apply автоматично одразу після --check. Між перевіркою і застосуванням змін має бути окремий момент для перегляду результату.

4. Лише після перевірки застосуйте зміни

BASH - Застосувати зміни після перевірки
sudo bash server-protection.sh --apply

У цьому сценарії передача файла і зміна production розділені. scp лише доставляє архів.

--check перевіряє його в реальному серверному середовищі.

І лише --apply дозволено змінювати систему.

Головне правило: доставка скрипта на сервер ще не означає дозвіл застосувати його зміни. Спочатку scp, потім --check, і лише після перевірки - --apply.

#scp #ssh #linux #bash #server-script #deployment #dry-run #production-safety