Sftp files from Remote server to local server
file-transfer, linux, sftp, shell
Solution
What about this approach?
- Connect to remote server using Sftp [authentication based on pub/pri keys]. A variable to point to private key file
- Transfer files with specific extension [.log] to local server folder. Variable to set remote server path and local folder
scp your_user@server:/dir/of/file/*.log /your/local/dir
- Log all the transferred files in a .txt file
for file in /your/local/dir/*.log
do
echo "$file" >> $your_txt
done
- Rename the transferred file in remote server
ssh your_user@server -c "for file in /dir/of/file/*.log; do mv /dir/of/file/"$file" /dir/of/file/new_name_based_on"$file"; done"
Problem
Sorry if it's too much simple question. But I am Java developer, no idea of shell scripting. I googled, but couldn't find exactly what I am looking for. My requirement - Connect to remote server using Sftp [authentication based on pub/pri keys]. A variable to point to private key file - Transfer files with specific extension [.log] to local server folder. Variable to set remote server path and local folder - Rename the transferred file in remote server - Log all the transferred files in a .txt file Can any one give me shell script for this? This is so far I framed from suggestions. Still some questions left on my side ;) ``` export PRIVKEY=${private_key_path} export RMTHOST=user@remotehost export RMTDIR=/logs/*.log export LOCDIR=/downloaded/logs/ export LOG=sucess.txt scp -i $PRIVKEY $RMTHOST:$RMTDIR $LOCDIR for i in 'ls -1 $LOCDIR/*.log' do echo $i >> $LOG done ssh $RMTHOST -c "for i in `ls -1 $RMTDIR; do mv /logs/$i /logs/$i.transferred; done" ```