Попробуйте использовать Auditd
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security_guide/chap-system_auditing
Для мониторинга каталога вам нужно
auditctl -w /path/to/dir -p wa -k CHANGED_ON_DIR
Используйте подключение для аутентификации с открытым ключом, чтобы избежать сохранения/обслуживания паролей в бумажном виде. Скопируйте содержимое локального пользователя id_rsa.pub
в файл удаленных пользователей ~/.ssh/authorized_keys
, чтобы установить соединение для аутентификации с открытым ключом.
Если вы все еще хотите использовать пароль, то можно создать сценарий ожидания, подобный следующему, и изменить вторую строку сценария ожидания, чтобы она соответствовала вашим user
, server
и MY_PASSWORD
с вашим паролем:
spawn scp "user@abc.com:/usr/etc/Output/*.txt" /usr/abc/
expect "user@abc.com\'s password:"
send "MY_PASSWORD\r"
interact
Благодаря @pynexj в сообщении Ссылка на StackOverFlow Мне пришлось изменить скрипт следующим образом:
#!/usr/bin/expect -f
spawn scp /TEST1.txt root@1.2.3.4:/root/
expect "*assword:*"
send "password\r"
expect eof
spawn scp /TEST2.txt root@1.2.3.4:/root/
expect "*assword:*"
send "password\r"
expect eof
exit
Обратите внимание , что если у вас есть несколько файлов или шаблонов, которые необходимо передать, вы также можете рассмотреть возможность использования SFTP с пакетным режимом и ожидать.
Прежде чем пытаться это сделать, вам нужно заключить в кавычки использование регулярных выражений в scp, так что, скорее всего, это будет вашей точкой отказа.
sshpass -p 'your_password' scp "user@abc.com:/usr/etc/Output/*.txt" /usr/abc/
Если вам разрешено хранить секреты на жестком диске, вы можете использовать ключи в домашней папке.ssh, чтобы пропустить аутентификацию по паролю. Именно такой должна быть не -интерактивная аутентификация от машины к машине.