Я вижу, что Вы имеете к опции выполнить вышеупомянутое.
Перенаправление портов установки, например:
Сервер - размещенные веб-сайты на Порте 80
Сервер B - размещенные веб-сайты на Порте 80
Можно использовать входящий трафик на порте 80 и направить его к Серверу на порте 80
И
используйте порт 81 для входящего трафика и направьте его к Серверу B на порте 80 (Это - самый простой и самый дешевый способ сделать это!)
В зависимости от возможности Вашего Маршрутизатора и сколько можно потратить, Вы могли получить несколько внешний IP-адрес и присвоить каждый порт IP-адреса вперед. т.е. xxx.xxx.xxx.1 указывает на Сервер A, и xxx.xxx.xxx.2 указывает на Сервер B.
Очевидное преимущество для второй опции - то, что порты могут остаться тем же и в зависимости от которого IP-адреса требуют домен/субдомен, Ваш маршрутизатор может обработать запрос и Маршрут/NAT к корректному серверу на правильном порте.
Я надеюсь, что это имеет столько смысла на тексте, сколько он делает в моей голове. Если у Вас есть какие-либо сообщенные мне вопросы, и я приложу все усилия для объяснения этого лучше!
Я бы использовал incron . Он использует подсистему ядра Linux inotify
, и если какое-либо отслеживаемое дерево каталогов / файл будет изменено, вы можете выполнить все, что захотите. Формат файла incrontab
очень прост, например,
/your/directory IN_MODIFY /usr/local/bin/log_file_modifications.sh $@/$#
будет запускать /usr/local/bin/log_file_modifications.sh
каждый раз, когда что-то изменяется в / your / directory
дерево каталогов, вызывая сценарий с полным путем ( $ @
аргумент) и файл, который был изменен (аргумент $ #
).
Ваш сценарий может быть примерно таким же простым, как
#!/bin/bash
logger -t modification_stalker "Yo dawg, these files got modified $1 $2 ..."
Параметр sshd здесь бесполезен. scp просто запустите что-то вроде 'scp -t - dest_file' на удаленном хосте.
Самый простой способ - создать оболочку вокруг реальной программы scp для регистрации аргументов командной строки.
OpenSSH
поддерживает запись в журнал scp
. Так что, если вы включите режим VERBOSE
, вы даже увидите каталоги, которые прошли ваши клиенты.
Просмотр проверки журнала
/var/log/auth.log
Вы можете настроить уровень подробного ведения журнала для sshd и использовать некоторые программы аудита, например auditd, для создания отчетов на основе сообщений журнала.
Теперь я понимаю, что это только sftp, а не scp, как было изначально запрошено, однако я оставляю здесь ответ, чтобы помочь людям.
Я сам пытался найти ответ, так что вот .
Во-первых, вам необходимо включить ведение журнала подпрограммы sftp, которую использует ssh:
В / etc / ssh / sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO
Затем перезапустите sshd, но ваш конкретный дистрибутив делает это:
service sshd restart
Теперь вы должны увидеть сообщения журнала scp, появляющиеся в чем-то вроде / var / log / messages или, возможно, /var/log/auth.log в зависимости от настроек вашего системного журнала.
Я использую syslog-ng и хочу мои журналы для передач sftp отделены от остальных журналов для ssh.
В /etc/syslog-ng/syslog-ng.conf:
#sftp configuration
destination sftp { file("/var/log/sftp.log"); };
filter f_sftp { program("sftp-server"); };
log { source(s_src); filter(f_sftp); destination(sftp); };
Это означает, что журналы теперь идут в /var/log/sftp.log - вам может потребоваться отредактировать программу ("sftp-server"), чтобы она соответствовала той программе, которую вы используете в SSH, поскольку есть различные варианты
Наконец, чтобы журналы не попадали также в журнал ssh, мы отфильтровываем их:
filter f_auth { facility(auth, authpriv) and not filter(f_debug) and not filter(f_sftp); };
Перезапустите syslog-ng (или демон системного журнала): * Когда я попытался просто перезагрузить, изменения не сработали, мне пришлось перезапустить его.
service syslog-ng restart