If then else in with mget command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers If then else in with mget command
# 1  
Old 03-02-2011
Question If then else in with mget command

Hi Friends,
I need to use if then else logic with the mget command.I need to check if {JOURNAL_CODE}*_1_Audit*.txt exists then download it (using mget)and if not then leave it.Same for the {JOURNAL_CODE}*_2_Audit*.txt file.Can you please tell me how can i achive that?

Code:
sftp -b - "$FTPUSER"@"$FTPHOST"  <<SFTP_END
 cd $FTPDIR
 -mget ${JOURNAL_CODE}*_1_Audit*.txt
 -mget ${JOURNAL_CODE}*_2_Audit*.txt
 exit
SFTP_END

Moderator's Comments:
Mod Comment Please use [code] and [/code] tags when posting code, data or logs etc. to preserve formatting and enhance readability, thanks.

Last edited by zaxxon; 03-02-2011 at 09:20 AM.. Reason: code tags
# 2  
Old 03-02-2011
ftp and sftp do not offer things like if/then/else and so on.
You would have to connect with ftp/sftp, get the list, hand it over to shell script logic, decide what to get or not and issue ftp/sftp again.
Since you are using sftp, you might want to scp instead to write more compact commands than ftp syntax.
# 3  
Old 03-02-2011
Hi,
Can i collect the file name using ls in a variableon the FTP server?If i can get the file name in the variable then i can use the mget for retreving the required fileSmilie
# 4  
Old 03-02-2011
You did not tell anything about the other suggestions like using scp instead of sftp, but yes, you can do this, but the problem will be, that every output your sftp client produces, will be caught in that variable.
A more clean solution would be using ssh/scp.

Example (adjust your shell and <user> <host> etc. of course!):
Code:
#!/bin/bash

echo "Starting.. -" $(date)

# get list:
echo "Getting file list ..."
FILELIST="$(ssh -o "ConnectTimeout=3" -o "BatchMode yes" <user>@<host> ls -1 /directory/${JOURNAL_CODE}*_[1-2]_Audit*.txt)"

# if $FILELIST not empty, then get files:
if [ -n $FILELIST ]; then
   for file in $FILELIST; do
      echo "Getting file $file ..."
      scp <user>@<host>:/directory/$file /localdestdir
   done
else
   echo "Sorry, nothing there."
fi

echo "This is the End -" $(date)
echo "--------------------------------------"

exit 0

Untested, maybe some slight modifications needed.

Last edited by zaxxon; 03-02-2011 at 12:16 PM.. Reason: added things in case it should be automated and written to a log via cron or what do I know ;)
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to specify more then one pattern in a single mget statement of ftp command?

hi, i am using ftp command to get some files from a remote server. if the remote server contains files of different extension. abc.txt def.txt ghi.lst jkl.cnf is it possible to get all the three type of files in one ftp? i am using this ftp command $FTP $Remote_server <<_FTP1 ... (4 Replies)
Discussion started by: Little
4 Replies

2. UNIX for Dummies Questions & Answers

mget help

Hi I'm trying to get all files from a directory with a script. So i'm gone paste my script here: cd /var/www/match_demos/speedgaming/ lftp -u Gudfaren,xxxxx ftp.speedgaming.pro -e cd 89.221.243.11_27500 -e mget *.dem exit when i run that i get: "File name missed. Try `help mget' for more... (2 Replies)
Discussion started by: vYN
2 Replies

3. Shell Programming and Scripting

Unix Mget command issue

Hi, I am facing an issue with mget command, below are the details The following commands are in a batch file "abc.ctl" cd /mypath/mydirectory/ mget 'MYFILE_*.touch' bye I use this file as a parameter for an sftp command sftp -b abc.ctl -oIdentityFile=$myserver -oPort=$myport >>... (0 Replies)
Discussion started by: saurabh_mh
0 Replies

4. UNIX for Dummies Questions & Answers

mget command issues

Hi I am trying to get 3 files sitting on a FTP server to an application server. All 3 files are .csv files. I am using mget *.csv and it transfers only 2 files. the 3 files contain a common word in their file names "Report". I tried mget *Report*.csv and that gets me 2 files as well. ... (3 Replies)
Discussion started by: bobsn
3 Replies

5. Shell Programming and Scripting

mget ftp command options

Hi, I am using mget ftp command to pull a bunch of zip files from Windows to local unix machines. It is working fine as follows. -rw------- 1 autosys autosys 614 Aug 19 13:13 02034128.zip -rw------- 1 autosys autosys 1866 Aug 19 13:13 02034127.zip -rw------- 1 autosys ... (1 Reply)
Discussion started by: spatra
1 Replies

6. UNIX for Advanced & Expert Users

mget ftp command options

Hi, I am using mget ftp command to pull a bunch of zip files from Windows to local unix machines. It is working fine as follows. -rw------- 1 autosys autosys 614 Aug 19 13:13 02034128.zip -rw------- 1 autosys autosys 1866 Aug 19 13:13 02034127.zip -rw------- 1 autosys autosys 14592 Aug 19... (1 Reply)
Discussion started by: spatra
1 Replies

7. Shell Programming and Scripting

mget command

Hi All, I am using mget (mget server.*) through ftp... ... i dont want to overwrite the files in my localmachine if it is already exists... is it possible through ftp ?? any other optios also mos t welcome Thnks in advance (4 Replies)
Discussion started by: scorpio
4 Replies

8. Shell Programming and Scripting

Is there a limit to mget command?

Hi All, I am using a csh ftp to get all the relevant files i need. When i reduce the number of file to 4 (which is aaa,bbb,ccc,ddd), the script manage to get all the files i need. But when i add "eee" to the mget command, it doesn;t seem to get any files at all. Is there a limit to how many... (0 Replies)
Discussion started by: Raynon
0 Replies

9. UNIX for Dummies Questions & Answers

mget

hi, i want to mget a directory. how to specify the flag that i dont want the system to prompt me? thanks (2 Replies)
Discussion started by: yls177
2 Replies

10. UNIX for Dummies Questions & Answers

mget (ftp command)

hey, I was wondering if its possible to use a complete path and file name using the mget command example mget /dir1/dir2/dir3/file.ext or get /dir1/dir2/dir3/file.ext because whenever i try its says file not found or permission denied..... but if i do cd dir1 cd dir2 cd dir3 mget... (2 Replies)
Discussion started by: Ganondorf
2 Replies
Login or Register to Ask a Question

Featured Tech Videos