вторник, 15 марта 2011 г.

Автоматизация sFTP c помощью expect

Появилась задача по расписанию бекапить некоторый файлы на sftp.
Вот скрипт который наваял для этого.

#!/usr/bin/expect

set timeout -1
set HOST "1.1.1.1"
set PORT "22"
set USER "user"
set PASS "PsAsSwOrD"
set FILENAME  [lindex $argv 0]

spawn sftp -o "BatchMode no" -oport=$PORT $USER@$HOST:/folder/

expect "password:" { send "$PASS\r" }

expect "sftp> " { send "put $FILENAME\r" }

interact


Из конмдной строки выполняем:
#./sftp-backup /root/file.tgz

2 комментария:

  1. для того что бы запускать этот скрипт из crontab вначале нужно задать параметр
    set timeout -1

    ОтветитьУдалить