Когда один и тот же каталог нужно поддерживать в актуальном состоянии на нескольких серверах, самый простой инструмент:
rsync. Но руками гонять его по каждому хосту - это боль. Можно написать маленький скрипт, который делает это автоматически.▪️ Простой пример: синхронизация по списку хостов. Допустим, есть файл
hosts.txt:
srv1
srv2
srv3
🛠 Скрипт:
#!/usr/bin/env bash
SRC="/opt/app/"
DEST="/opt/app/"
HOSTS="hosts.txt"
for host in $(cat "$HOSTS"); do
echo "[*] Sync to $host..."
rsync -az --delete "$SRC" "$host:$DEST"
done
Скрипт:
Синхронизирует каталог на каждый хост;
Удаляет лишние файлы (
--delete);Передает только изменения (
-a + -z);Работает со сколько угодно хостами записанными в
hosts.txt▪️ Плюс: можно добавить контроль доступности
ping -c1 -W1 "$host" >/dev/null || {
echo "$host недоступен, пропускаю"
continue
}
BashTex 📱 #bash