我无法从unix中的SFTP目录中将文件名复制到文本目录中(发送“ls -lt * .csv> $ {FEEDBACK_FILE_LIST} \ r”)
问题描述:
我想将所有.csv
文件移动到$FEEDBACK_FILE_LIST
与send "ls -lt *.csv > ${FEEDBACK_FILE_LIST}\r"
。它不会引发任何错误,也不会将任何文件移动到本地目录$ FEEDBACK_FILE_LIST中。
请帮帮我。
编辑: 我想要得到的文件列表到本地目录.PFB ..
expect<<EOD
spawn /usr/bin/sftp -o Port=22 ${USER}@${HOST_NAME}
expect "password:"
send "${PASSWD}\r"
expect "sftp>"
send "ls -la *.csv > ${FEEDBACK_FILE_LIST}\r"
expect "sftp>"
send "bye\r"
EOD
答
你有几个选项,最好将是下一个。使用
ssh [email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
假设$FEEDBACK_FILE_LIST
是您计算机上的文件。如果你想为此设置cron job,并且你完全确定你想要这样做!!!!你可以这样做
ssh host:[email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
这样你就不会提示输入密码,用于cron作业真的很有用,但要注意,密码将是打开的脚本文件,任何人都可见。写在别的地方也无济于事,因为它可以很容易地被追踪。
如果你不需要它是一个cron作业,你可以做这样的事情在你的.bashrc
:
function getlogs() {
ssh username:[email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
}
那么你可以随时做终端
getlogs password
这是我会这样做的方式。
在远程目录(SFTP)中,我们不应该删除,实际上我们需要将.csv文件从SFTP目录复制到本地目录。因此,我们正在将文件复制到变量($ FEEDBACK_FILE_LIST /) 。我可以在日志中的文件列表,但不能移动到本地目录。 ls -la * .csv> /***/**/***/log/9006_feedback_files_list.txt ----> FEEDBACK_FILE_LIST –
我将编辑答案 – campovski
谢谢,但是我们不能在远程使用scp命令目录(SFTP>)。我的意思是我想获取文件列表到本地目录.PFB..expect ” 发送的 “ls -la * .CSV> $ {FEEDBACK_FILE_LIST} \ R” 期望 “SFTP>” 发送“再见\ r“ EOD –