linux - 在 linux 中真正完成上传后重命名文件

标签 linux bash sftp

我必须将大文件上传到 sftp 服务器,上传完成后,重命名文件(基本上添加 .ready 扩展名)以便我可以将其标记为已上传并准备好进行进一步处理。

我看到 fuser 可以显示文件是否仍被进程保留。

有人遇到过类似的问题并且可能有可用的 soem 脚本吗?

更新:我可以在我自己的环境中测试这个,两台服务器具有完全访问权限。问题是在实时环境中,我无法访问客户端。但也许我可以提供使用 cron 运行的说明或脚本...

我已经尝试过 lftp,但无法使用该命令重命名文件。

lftp sftp://sftpuser:Test#1234@10.9.220.220 -e "put test;bye"   

最佳答案

您可以使用 sftp 重命名远程文件,假设 sftp 可以在批处理模式下验证您的身份,即通过 ssh-agent .

$ file=foo.txt
$ echo -e "put $file\nrename $file $file.ready\n" | \
   sftp -b - user@somehost

关于linux - 在 linux 中真正完成上传后重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629581/

相关文章:

linux - 是否可以忽略平开窗中的类型错误?

linux - 创建 Linux 用户和组

java - 在java中执行bash

php发送文件到sftp

linux - 我无法使用 sftp get 命令重命名我正在下载的文件

java - Java验证SFTP服务器上文件是否存在的简单方法

linux - Zabbix 主动检查 log[] logrt[]

Linux 搜索子字符串命令

linux - 使用 bash 脚本提取 tar 文件

php - Cloud9 cURL 不工作