我对脚本编写还比较陌生,但我正在尝试编写一个脚本,该脚本将在特定时间运行,并将网络驱动器备份到非站点目标。
我有手动操作的命令,并已计算出时间,但在尝试运行脚本时出现以下错误:

    cd /volume1/Data
    lftp -u [username],[password] [Destination]
    Mirror [directoryname] -R -n

无法CD到卷1/数据,找不到第3行镜像。
我得检查一下大小写和拼写。
六羟甲基三聚氰胺六甲醚

最佳答案

Mirror是一个lftp命令,脚本在lftp进程结束后执行它,就像它是一个shell命令一样,这是永远不会发生的,因为程序是交互式的,并且等待输入。您需要做的是将lftp命令传递给lftp的标准输入:

cd /volume1/Data
echo "Mirror [directoryname] -R -n" | lftp -u [username],[password] [Destination]

或者,您可以使用lftp执行脚本的能力(选中manual for-f选项)并将lftp命令分离到一个单独的文件中,然后将该文件传递给lftp,或者选中-e选项。它允许您将lftp命令内联到参数列表中。

关于linux - Linux脚本编写问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7075676/

10-11 03:24