我想从 sftp 服务器安排文件复制。不允许使用公钥,所以我只知道一种使用期望的方法。
问题是文件名每天都在变化,但文件名实际上是 date+.csv 所以我可以安排它。
但无法设置变量文件名...
我想在 2 个脚本中做这样的事情。
脚本 1(sh 脚本)
文件名=日期 %Y%m%d
导出文件名
脚本 2(exp 脚本)
连接到 sftp 服务器获取文件名。
出口
我的努力如下。
我的 *.sh 脚本 =
开始
#!/bin/sh
file=$(date --date='-2 days' +%Y%m%d.csv)"
# looking for something like this (20121031.csv)
export file
expect /home/desk4/task/sftp.exp
结尾
我的期望脚本位于“/home/desk4/task/sftp.exp”
开始
!/usr/bin/expect
spawn /usr/bin/sftp user@server.com
expect "user@server.com's password:"
send "password"
send "\r"
expect "sftp>"
spawn "get $file \r"
expect "sftp>"
send "bye \r"
结尾
错误
./sftp.sh: 3: export: 20121031.csv: 变量名错误
当我更新用于测试目的的 sh 脚本时,如下所示......
#!/bin/sh
file=$(date)
export $file
expect /home/harshit/Desktop/1/sftp.exp
======================================== 错误= ./sftp.sh: 3: 导出: 2: 错误的变量名
- 结尾 -
谢谢你的重播。。