rsync

Должна быть установлена на всех машинах.

В rsync всегда, сначала указываем источник, а потом место назначения, т.е сначала что копируем, а потом куда копируем.
Всегда используйте параметр -nv перед прогоном. Rsync может натворить огромную головную боль если что-то не так сделать.


Завершающий слеш "/"

Источник без завершающего слеша скопирует сам каталог /path/dir в удаленный каталог /dest_dir:
] rsync -a /path/dir user@host:dest_dir/

Путь к каталогу источнику с косой чертой в конце скопирует не сам каталог /path/dir/, а все содержимое в удаленный каталог /dest_dir/:
] rsync -a /path/dir/ user@host:dest_dir/


Небольшая инструкция по синхронизации

  1. Синхронизируем локальный каталог с удаленным сервером:
    ] rsync -a -e "ssh -p 222" html/ user@host:html/

    Примечание: -e "ssh -p 222" указывает соединиться по определенному порту.

  2. На удаленной машине синхронизируем каталоги:
    ] rsync -a html/ /var/www/html/


Исключить каталог из операции переноса

] rsync -a -e "ssh -p 222" --exclude 'res/header' html/ user@host:html/


Создать точную структуру каталога-источника

Удалит из каталога-назначения всё лишнее - удалит то что нет в источнике:
] rsync -a --delete -e "ssh -p 222" path/dir/ user@host:dir/

© 2025 linuxgik.ru

Команда scp

scp - копирует файлы между хостами в Сети. Работает подобно команде cp

Примеры:

Внимание: для scp порт указывается с большой "P".

© 2025 linuxgik.ru

Инструкция по настройке сервера

1. Настройка записей DNS

Добавьте A-запись с IPv4-адресом сервера для your_domain.com и для www.your_domain.com. Для IPv6 — AAAA-запись.

2. Создаем пользователя с правами sudo

Выходим из сессии root и заходим под новым пользователем.


2. Настройка SSH

Примечание. Для настройки ключей-SSH в Windows 11, читай: Настройки ключей-ssh в системе Windows

  1. Генерация и копирование ключей
    1. ] ssh-keygen - на клиенте генерируем пару ключей.
    2. ] ssh-copy-id user@host - копируем открытый ключ на удаленный сервер.

    Примечание. Если ssh-copy-id недоступен, скопируйте ~/.ssh/id_rsa.pub в ~/.ssh/authorized_keys на сервер

  2. Открываем файл etc/ssh/sshd_config

    Внимание: перед отключением паролей проверьте подключение по ключу в новой сессии.

    1. Отключаем аутентификацию по паролю - PasswordAuthentication no
    2. Запрещаем логиниться от root - PermitRootLogin no
    3. Меняем порт - Port #номер
    4. Перезагружаем сервер ] systemct reload sshd
  3. SeLinux (разрешение нового порта)

    Примечание: Если SeLinux отключен, пропускаем этот шаг.

    1. Проверить включен ли SeLinux: ] sestatus.
    2. Установить утилиты для управления политикой SeLinux ] yum install policycoreutils-python-utils
    3. Применить политику SeLinux к порту: ] semanage port -a -t ssh_port_t -p tcp #номер
  4. FirewallD (открытие порта)
    1. Открыть порт: ] firewall-cmd --permanent --add-port=2222/tcp
    2. Перезагрузим FirewallD: ] firewall-cmd --reload
    3. Проверим что всё применилось: ] firewall-cmd --list-ports

Начальная настройка SSH завершена.


3. Установка и запуск web-сервера

Для запуска веб-сервера нужно:
  1. Установить веб-сервер
  2. Открыть порт в межсетевом экране
  3. Настроить автоматический запуск для службы httpd или nginx
Установка веб-сервера
  • Apache
    • ] yum install httpd
    • ] systemctl enable httpd --now
  • Nginx
    • ] yum install nginx
    • ] systemctl enable nginx --now
Открываем порт в межсетевом экране
  • ]firewall-cmd --zone=public --add-service=http --permanent - добавляем в активную конфигурацию 80-ый порт в виде сервиса http.

    Порт 80 ассоциирован с сервисом http в firewalld. Подробней читай в официальной документации firewalld: Open a Port or Service

  • ] firewall-cmd --reload
  • ]firewall-cmd --list-all - проверяем что порт открыт.

Готово. После этого, технически уже можно начать пользоваться сервером. Вводите в браузере ip-адрес или доменное имя и проверяйте.