gpt4 book ai didi

linux - 从 scp 接收文件后如何运行脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:08 24 4
gpt4 key购买 nike

我想运行一个脚本来处理通过 scp 协议(protocol)在特定目录中接收到的每个文件,在接收到文件后立即处理。

我不想合并该目录,以避免尝试处理部分收到的文件。这也是阻止我使用 inotify 工具(https://github.com/rvoicilas/inotify-tools/wiki)的问题,我猜,因为我无法知道文件是否在成功传输后关闭,或者是否过早关闭

最佳答案

这是可能的,这是一个很好的 hack,但很难设置。

您必须在 scp 中使用未记录的选项:-f 和 -t(请参阅 scp.c)。

在接收 scp 命令的远程服务器上:

  1. 在/etc/password 中,您必须用 shell 脚本替换/bin/bash
  2. Shell 脚本必须获取从客户端接收到的参数(参见特殊参数 $@)
  3. 在 shell 脚本中,您可以选择要将您正在传输的文件发送到的目录
  4. 在 shell 脚本中执行 scp -r -p -t/new/directory in scp 代码,-t 初始化允许从当前连接传输的 iamremote 变量。
  5. 在 shell 脚本中在此之后执行一些操作,或者不执行
  6. 退出

要获取文件,请将 -t 替换为 -f

我目前正在研究这样一个 shell 脚本,多年来它一直运行良好。

有关这些选项的更多信息: https://lists.gt.net/openssh/dev/41493?do=post_view_threaded https://blogs.oracle.com/janp/entry/how_the_scp_protocol_works

关于linux - 从 scp 接收文件后如何运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115372/

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