我有这个脚本,但它需要期望包工作,我们可以有任何其他方式通过SFTP上传文件,因为我们的安全团队不允许在生产服务器上安装expect包。
我的SFTP上传代码。
/usr/bin/expect<<EOD
spawn /usr/bin/sftp -o Port=$PORT master@$HOST
expect "password:"
send "$PASSWORD\r"
expect "sftp>"
send "put $SOURCE_FILE $TARGET_DIR\r"
expect "sftp>"
send "bye\r"
EOD
有人可以帮助我将其转换为不使用期望。
我们的SFTP服务器使用用户名密码
答案 0 :(得分:0)
OpenSSH sftp
客户端没有为自动化提供密码的原生支持。
所以你必须以某种方式解决这个问题:
expect
或sshpass
答案 1 :(得分:0)
一个好的解决方案是使用 lftp 命令,它允许在一个命令行中提供密码和运行sftp命令,如下所示:
$query = DB::table('child');
$query->select(array('child.id','child.jobNumber'));
$query->whereRaw('child.parentId = (select child.parentId from child where child.id = 2)');
$query->orderBy('child.jobNumber');
$query->orderBy('child.id');
// how do I do my where clause?
$list = $query->get();