linux - shell 脚本 : ftp to check existing file

标签 linux shell

我有一个简单的 shell 脚本来将每日日志文件传输到另一个 Windows FTP。

问题是如果文件已经存在,即使文件名完全相同,它仍然会上传一个新文件。

如何快速检查这个脚本?如果文件存在,则不会继续进行 FTP 传输

ftp -n -v $HOST << EOT
user $USER $PASSWD
prompt
bin
mput $FILE
bye
EOT

最佳答案

Unix 中使用 ftp 很容易。首先通过ftp 登录系统,通过ftp 运行ls -ltr 命令,在history.txt< 中列出文件 文件(见下面我的示例)并在传输文件时首先检查该文件是否已在历史文件中可用。如果可用,请不要传输该文件。我这样做如下:-

HISTORY_FILE="history.txt"

ftp -n -v $HOST << EOT
user $USER $PASSWD
prompt
bin
ls -rtE $HISTORY_FILE
bye
EOT

现在你可以使用下面的命令来检查:-

ISFILENAMEEXIST=$(cat $HISTORY_FILE | grep $FILE)

现在,如果该文件存在于 history.txt 中,则不要发送该文件,如果不可用,则通过 ftp 发送它。

关于linux - shell 脚本 : ftp to check existing file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49027067/

相关文章:

linux - GNU find,如何使用调试选项,-D

linux - nginx 服务器上 vsftpd 中 root 的默认目录

linux - 每半小时检查一次,看看if条件是否为真

macos - 迭代文件夹并将文件上移一级

shell - 第三方Windows命令行程序?

Linux shell脚本如何仅在表不存在时创建Oracle表

linux - 从具有 CAP_SYS_ADMIN 和 CAP_IPC_LOCK 功能的 bash 脚本启动 perf

linux - 如何将命令输出作为多个参数传递给另一个命令

linux - 是否有用于 shell 脚本的 GUI 调试器

linux - 如何在linux shell中正确使用open命令?