Simple script for transferring files via SFTP with Tcl/Expect
#!/opt/freeware/bin/expect## Variablesset user <"User">set password <"Password">set host <Host>set logdir <Logdir>set scriptdir <Scriptdir>## Optional outputsend_user [exec date]send_user "START\n"## Another attempt to define a date...# set startdate [exec date +%Y%m%d0000]# exec touch -t $startdate $scriptdir/todaystart.txt# send_user "Timestamp file created\n"# set files [exec find $logdir -newer $scriptdir/todaystart.txt -name foo_\*txt | xargs echo]# send_user "Transfer list fetched\n"## Transfer processspawn sftp $user@$hostexpect "password:"send "$password\n";#send_user "login OK\n"expect "sftp> "send "cd somedir\n";#send_user "Command cd OK\n"expect "sftp> "send "lcd $logdir\n";#send_user "Command lcd OK\n"expect "sftp> "set timeout -1send "put *.ext\n";# For some reason, if the following line is missing, only the first file is transferred.send "ls -l\n"expect "sftp> "send "quit\n";expect eof## Optional outputsend_user "Command quit OK\n"send_user "Session closed\n"send_user [exec date]send_user "END\n"