What is the meaning of "spawn" linux shell commands ? (Centos6)

I need to know how to setup a cron job that automatically connects to the remote server and change the directory and get all the files in that directory to local

i think i have to use sftp but i saw some commands called "spawn" in the some shell scripts and i am confused what this will do and what is for ?

spawn sftp user@ipaddress cd xxx/inbox mget * 

will this work in the context of the downloading remote directory ?

4

1 Answer

In your case, spawn is most probably a command of expect scripting language which allows automation of interactive program operations. In such a case, spawn runs an external command from the expect script. Your script example is missing a shebang sequence (first line starting with #!), indicating the expect interpreter, and, as such, will not be interpreted by expect when executed directly.

Password authentication with sftp is limited to the interactive mode; To control sftp in interactive mode, you can use the following expect script example:

#!/usr/bin/env expect set timeout 20 # max. 20 seconds waiting for the server response set user username set pass your-pass set host the-host-address set dir server-dir spawn sftp $user@$host expect assword: send "$pass\r" expect sftp> send "cd $dir\r" expect sftp> send "mget *\r" expect sftp> send "exit\r" expect eof 

Another possibility is to use public-key authentication, which is more secure (see Setup SFTP to Use Public-Key Authentication). In such a case, you can simply use sftp directly in batch mode:

#!/bin/sh user=username host=the-host-address dir=server-dir sftp -b - "$user@$host" <<+++EOF+++ cd "$dir" mget * exit +++EOF+++ 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like