gpt4 book ai didi

linux - lftp 通过 sftp,上传时找不到文件错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:38 26 4
gpt4 key购买 nike

我几乎一整天都在尝试找到解决这个问题的方法,到处搜索,搜索这个论坛几个小时,但我找不到问题出在哪里。我必须按小时解析应用程序日志文件,然后将每小时文件(包含大约 100,00 行)传输到 remore 服务器以进行数据库上传。出于安全原因,FTP 的使用被阻止,所以我通过 sftp 使用 lftp 进行文件传输,因为脚本将从 cron 运行。

问题是通过 PUT/MPUT 命令上传文件时 sftp 抛出错误“put: '/home/applogs/ACCESS/access_log*: No such file或目录”。我正在使用“*”以便传输任何名称为 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.* 文件可以“放”

关于linux - lftp 通过 sftp,上传时找不到文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com