自动执行ftp操作的linux脚本

标签 linux shell ftp

我需要将文件从我的 Linux 服务器传输到 FTP 服务器。

我的 shell 脚本是:

    #! /bin/ksh

    HOST='my_ip'
    USER='userid'
    PASSWD='password'
    FILE='file.txt'
    DIREC='/eir_log'
    ftp -in $HOST << EOMYF 
    user $USER $PASSWD
    binary
    mkdir $DIREC 
    cd $DIREC
    pwd
    quit
    EOMYF

非常简单的代码。但问题是虽然我可以正常登录 FTP 服务器,但不允许我在 FTP 服务器中创建新目录。起初我以为我的脚本有一些错误,但即使我在 ftp 服务器中单独运行 mkdir,它也会显示 create directory failed。 有人可以让我知道可能的错误,或者如果我遗漏了我的代码中的任何错误。不过 pwd 工作正常,这意味着通过脚本登录 ftp 站点没有问题.

预先感谢您的帮助

最佳答案

看看expect

一些让你开始的东西

#!/usr/bin/expect

set timeout 120
spawn ftp 192.168.0.210
expect "Name"
send "root\r"
expect "Password:"
send "pass\r"
expect "ftp> "
send "bye\r"

关于自动执行ftp操作的linux脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12598071/

相关文章:

linux - GPFS : mmremote: Unable to determine the local node identity

c++ - 一种更改正在运行的程序的有效用户 ID 的方法?

c - 如何只将最后 10 行写入 C 文件?

php - 更改 PHP 的控制台输出

java - 通过java运行Shell脚本

c# - Xamarin.Forms Shell GoToAsync 在 iOS 中无法按预期工作

c# - 使用 TLS session 重用将文件上传到 C# 中的隐式 FTPS 服务器

linux shell script - 在文件内的目录中搜索它的日期是今天和前 3 天

c# - 使用 C# 将 FTP 文件从内存上传到远程站点

c# - Azure VM 上 FtpWebRequest 处于事件模式 (UsePassive = False) 时为 "500 Syntax error, command unrecognized"