putでファイルを転送し、getでファイルを取得する
### コマンドラインでSFTP接続する方法
$ sftp ubuntu@***.**.**.**
sftp> put sample.txt
Uploading sample.txt to /home/ubuntu/sample.txt
sample.txt 100%
### シェルでSFTPする方法
test.shにファイルの転送、取得を書いて、sample.shにftp接続する際のパスワードを書きます。
$ chmod +x test.sh
$ chmod +x sample.sh
test.sh
sftp ubuntu@***.**.***.** << END get nodesource_setup.sh put sample.txt quit END
sample.sh
#!/bin/bash expect -c " set timeout 3 spawn ./test.sh expect \"ubuntu@***.**.***.**'s password:\" send \"hogehoge\n\" interact "
$ ./sample.sh
spawn ./test.sh
ubuntu@***.**.***.**’s password:
Connected to ***.**.***.**.
sftp> get nodesource_setup.sh
Fetching /home/ubuntu/nodesource_setup.sh to nodesource_setup.sh
/home/ubuntu/nodesource_setup.sh 100% 14KB 345.7KB/s 00:00
sftp> put sample.txt
Uploading sample.txt to /home/ubuntu/sample.txt
sample.txt 100% 4 0.3KB/s 00:00
sftp> quit
ほう、これがやりたかった。
sftp ubuntu@hoge.com としてもできるが、passwordの入力は同じか…