【问题标题】:FTP files in different folders using shell script使用 shell 脚本在不同文件夹中的 FTP 文件
【发布时间】:2017-05-06 05:44:11
【问题描述】:

我正在尝试使用ftp 脚本,该脚本在同一连接内的不同文件夹中发送文件,但下面的脚本没有运气。

#!/bin/bash
HOST_NAME=host.server
username= user_name
passwd=   password
remote = /path_to_remote/folder
local =  /path_to_local/folder
folder=$1
pwd
ftp -in <<EOF
open $HOST_NAME
user $username $passwd
cd local/ 
lcd remote/ 
put a_filename_<timestamp>.txt 
mkdir $remote/$folder
cd $remote/$folder
lcd $local/$folder 
put b_filename.txt 
close 
bye

除此之外,在运行时是否可以仅发送最近 10 分钟内创建的最新文件?

【问题讨论】:

  • Re "此脚本触发前 10 分钟":"此脚本" 是否意味着 bash 部分,(即整个脚本),还是ftp 部分?
  • 每当上述shell脚本触发时,需要在10分钟前生成FTP文件。例如:如果脚本计划触发@6AM,则此脚本必须 ftp 凌晨 5:50 之后生成的文件。
  • 请看:shellcheck.net
  • 通过使用 shellcheck,我在注释代码中没有发现任何问题。
  • 我修改了代码,shellcheck 中没有报告问题。这是一个有效的代码?? #!/bin/bash HOST_NAME=host.server username=user_name passwd=password remote=/path_to_remote/folder local=/path_to_local/folder folder="$1" pwd ftp -in

标签: bash shell unix ftp


【解决方案1】:

试试这个:

#!/bin/bash
HOST_NAME=host.server
username=user_name
passwd=password
remote=/path_to_remote/folder
local=/path_to_local/folder
folder="$1"
pwd
ftp -in <<EOF
open "$HOST_NAME"
user "$username" "$passwd"
cd local/ 
lcd remote/ 
put a_filename_<timestamp>.txt 
mkdir "$remote/$folder"
cd "$remote/$folder"
lcd "$local/$folder" 
put b_filename.txt 
close 
bye
EOF

注意事项:

  1. shell 不允许= 旁边有空格。

  2. 引用变量。

  3. OP 代码缺少关闭 EOF

我已经单独留下了&lt;timestamp&gt;,那将是一个不同的问题。

【讨论】:

  • 主机服务器离线。我将测试 n 更新.. 是否有任何可能的条件来发送此脚本触发前 10 分钟生成的最新文件??
猜你喜欢
  • 2016-10-15
  • 1970-01-01
  • 2014-05-08
  • 2015-07-13
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多