Hello,
Today I am writing below article which can help you to upload files to SFTP/FTP by using CURL.
Ok why we need that ? Let me tell explain!!
How we login into SFTP/FTP ?
Today I am writing below article which can help you to upload files to SFTP/FTP by using CURL.
Ok why we need that ? Let me tell explain!!
How we login into SFTP/FTP ?
[root@virt03 test]# sftp 192.168.56.110 Connecting to 192.168.56.110... root@192.168.56.110's password: sftp> ls anaconda-ks.cfg nodes post-install post-install.log
sftp> exit
and uploading files with put command. Its a lengthy way. So recently I have gone through few articles and with some R&D I have modified it as script and command-line argument support.So you can call the script with filename as argument.
So Lets do this!!!
- Command 1 : This is for uploading a single to SFTP/FTP by using CURL.
SFTP
curl -k -u virt03:virt03 -T file4 sftp://192.168.56.110/home/virt03/
Syntax :
curl -k -u username:password -T filename sftp://IP_Addreess OR Hostname:/path/to/upload
FTP
curl -k -u virt03:virt03 -T file6 ftp://192.168.56.110
Example
[root@virt03 test]# curl -k -u virt03:virt03 -T file4 sftp://192.168.56.110/home/virt03/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
[root@virt03 test]# touch file6
[root@virt03 test]# curl -k -u virt03:virt03 -T file6 ftp://192.168.56.110
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
[root@virt03 test]# ls /home/virt03/ | grep file
file1
file2
file3
file4
file5
file6
[root@virt03 test]#
So hope you understand whats happening now. Lets make some script!!!
[root@virt03 test]# lsfile1 file3 file5 file7 file9 lab2.sh upload1.shfile2 file4 file6 file8 lab1 rackspace3 upload2.sh[root@virt03 test]# ls /home/virt03/ | grep filefile1file2file3file4file5file6[root@virt03 test]# ./upload1.sh file7% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0[root@virt03 test]# ls /home/virt03/ | grep filefile1file2file3file4file5file6file7[root@virt03 test]# ./upload2.sh file8 file9% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 00 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0[root@virt03 test]# ls /home/virt03/ | grep filefile1file2file3file4file5file6file7file8file9[root@virt03 test]#
And the scripts are
[root@virt03 test]# tail upload*==> upload1.sh <==#!/bin/bashcurl -k -u virt03:virt03 -T "{$1}" sftp://192.168.56.110/home/virt03/==> upload2.sh <==#!/bin/bashcurl -k -u virt03:virt03 -T "{$1,$2}" sftp://192.168.56.110/home/virt03/[root@virt03 test]#
I hope you can understand what the scripts are doing. To upload more than 2 files you can use for loop like below.
for i in file1 file2 file3 file4 file5do./upload1.sh $idone
Example:
[root@virt03 test]# for i in file10 file11 file12> do> ./upload1.sh $i> done% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0[root@virt03 test]# ls /home/virt03/ | grep file1file1file10file11file12[root@virt03 test]#
Hope you understand!! , If any doubts please dont hesitate to ask.
0 comments:
Post a Comment