2017-09-13 7 views
-3

모든 .csv 파일을 send "ls -lt *.csv > ${FEEDBACK_FILE_LIST}\r"으로 $FEEDBACK_FILE_LIST으로 옮기고 싶습니다. 어떤 오류도 발생시키지 않고 모든 파일을 로컬 디렉토리 $ 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 

답변

0

은 최고의 다음이 될 것입니다. 사용하기

ssh [email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST 

$FEEDBACK_FILE_LIST은 컴퓨터의 파일입니다. 이 작업을 cron 작업으로 설정하고 싶다면 완전히 수행하고 싶다면 !!!! 당신은 cron 작업에 매우 유용

ssh host:[email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST 

당신이 암호를 입력하라는 메시지가 표시되지 않습니다 이런 식으로 뭔가를 수행하지만, 인식 할 수있다, 암호는 스크립트 파일을 열 사람이 볼 수 있습니다. 그것을 다른 곳으로 쓰는 것은 쉽게 도출 될 수 있기 때문에 도움이되지 않습니다. 당신은 cron 작업을 할 필요하지 않는 경우

, 당신은 .bashrc이 같은 작업을 수행 할 수 있습니다

function getlogs() { 
    ssh username:[email protected] "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST 
} 

그런 다음 당신은 항상 터미널

getlogs password 

에서 할 수있는 이것은 내가 그것을 할 방법.

+0

원격 디렉토리 (SFTP)에서 우리는 삭제해서는 안되며 실제로는 SFTP 디렉토리에서 로컬 디렉토리로 .csv 파일을 복사해야합니다. 파일을 varaible ($ FEEDBACK_FILE_LIST /)로 복사합니다. . 로그에있는 파일 목록을 로컬 디렉토리로 이동할 수는 없습니다. ls -la * .csv> /***/**/***/log/9006_feedback_files_list.txt ----> FEEDBACK_FILE_LIST –

+0

대답을 편집합니다 – campovski

+0

고마워요,하지만 우리는 원격에서 scp 명령을 사용할 수 없습니다 디렉토리 (SFTP>). 내 포인트는 파일의 목록을 로컬 디렉토리로 가져오고 싶습니다 .PFB..expect << EOD /usr/bin/sftp -o 포트 = 22 $ {USER} @ $ {HOST_NAME} 기대 "암호 :" 보내기 "$ {PASSWD} \의 r은" 기대 "SFTP>" 보내기 "LS -la * .CSV> $ {FEEDBACK_FILE_LIST} \의 R은" 는 \ 안녕 "SFTP>" 보내기 "기대 r " EOD –