簡體   English   中英

通過sftp進行lftp,上傳時找不到文件錯誤

[英]lftp via sftp, file not found error while uploading

我幾乎整天都在尋找解決此問題的方法,到處搜索Google,搜索該論壇已有幾個小時,但我找不到問題所在。 我必須每小時分析一次應用程序日志文件,然后將每小時文件(包含大約100,00行)傳輸到remore服務器以進行數據庫上傳。 由於安全原因,禁止使用FTP,因此我正在通過sftp使用lftp進行文件傳輸,因為腳本將從cron運行。

問題是通過PUT / MPUT命令上傳文件時sftp引發錯誤“ put:'/ home / applogs / ACCESS / access_log *:沒有這樣的文件或目錄 ”。 我使用的是“ *”,以便傳輸任何名稱為access_log的文件。 如果我輸入完整的文件名(即; access_log_10-06-2013_15_53_46.txt),則腳本可以正常運行,但是如果我使用“ access_log * ”,則系統找不到文件! 我嘗試了PUT和MPUT。

如果有人可以幫助,那將是一個很大的幫助。 以下是我的文件傳輸部分代碼:

    #!/bin/bash

    IP=**********
    USER=********
    PASS=********

    SRC='/home/applogs/ACCESS/'
    DST='/home/db/INPUT/'

    ###### get system time ######
    EXECU_TIME=`date '+%d-%m-%Y_%H_%M_%S'`

    ###### Rename file with system timestamp ######
    mv access_log* access_log_$EXECU_TIME.txt

    ###### Change file permission ######
    chmod 774 access_log_$EXECU_TIME.txt


    ##### Start file transfer
    lftp -u ${USER},${PASS} sftp://${IP}<<EOF>lftplog.txt
    cd ${DST}
    lcd ${SRC}
    set net:timeout 30
    set ftp:ssl-allow no
    put access_log*
    quit
    EOF

來源的系統信息:GNU Linux 2.6.9-55

目的地的系統信息:GNU Linux 2.6.39-200.24.1

嘗試mput access_log*您需要告訴lftp不要要求對mput進行確認:

lftp -i -u  ${USER},${PASS} sftp://${IP}<<EOF>lftplog.txt
cd ${DST}
lcd ${SRC}
set net:timeout 30
set ftp:ssl-allow no
mput access_log*
quit
EOF

我希望您只有一個access_log。*文件可以“放入”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM