shellスクリプトログインsftp

975 ワード

sftpはftpのように直接アカウント/パスワードを使用してログインすることはできません(ftp ipアドレス;userアカウント/パスワード)、インタラクティブにログインパスワードを入力する必要があります.shellではexpectを使用してパスワードを入力できます.
sftp $rad.put $BSF_USER@$BSF_IP
expect{
	"password:" {send  "$spwd\r"}
	"(yes/no)?" {send "yes\r";exp_continue}
}

使用することもできます 
ssh-keygen-t rsaは公開秘密鍵ペアを生成し、公開鍵をsftpサーバの.sshディレクトリに配置し、秘密登録を免除する.
ただし、shellスクリプトに論理操作がある場合はエラーが報告され、BSF_IP="172.16.67.23" BSF_USER="send" BSF_PATH=/tw/sjzf/sichuan/data/${AC_DATE}/day FILE_PATH=${ETL_DATA}/PROV_DATA/sichuan/day/${AC_DATE} for loop in 1 2 3 4 5 6 do rad=$RANDOM # .put echo "get $BSF_PATH/i_10000_${AC_DATE}_SC000${loop}_00_001.dat $FILE_PATH" >> ${rad}.put sftp -b $rad.put $BSF_USER@$BSF_IP rm -f $rad.put done bye