expect Иногда необходимо реализовать копирование файлов в определенное время по SSH с удаленного компьютера. Это необходимо для периодического копирования бэкапов, файлов конфигураций и т.д.

Для работы этого скрипта, в системе должен стоять expect, куда же без него. :)

Это можно реализовать так (скрипт):

1
2
3
4
5
6
7
8
9
 #!/usr/bin/expect -f
 set timeout 100
 set PASS "пароль!"
 set USER "пользователь!"
 
 spawn scp -P port $USER@wikiadmin.net:/путь/файл /куда копировать
 expect "password: "
 send "$PASS\r"
 expect eof

Первоначально надо запустить скрипт вручную, т.к. первое соединение по SSH неминуемо попросит занести хост в ssh-hosts. Далее выставляем в cron.