Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SSH执行Lua脚本和文件io操作_Ssh_Lua - Fatal编程技术网

通过SSH执行Lua脚本和文件io操作

通过SSH执行Lua脚本和文件io操作,ssh,lua,Ssh,Lua,我正在尝试远程运行脚本(远程是服务器B)。当我在服务器A上本地运行脚本时,我得到了预期的结果。当我通过SSH将脚本从服务器A运行到服务器B时,出现以下错误: /usr/bin/ssh admin@server.domain.com "lua/rpi.init" lua: lua/rpi.init:8: attempt to index upvalue 'logFile' (a nil value) stack traceback: lua/rpi.init:8: in func

我正在尝试远程运行脚本(远程是服务器B)。当我在服务器A上本地运行脚本时,我得到了预期的结果。当我通过SSH将脚本从服务器A运行到服务器B时,出现以下错误:

/usr/bin/ssh admin@server.domain.com "lua/rpi.init" 
lua: lua/rpi.init:8: attempt to index upvalue 'logFile' (a nil value) stack traceback:
        lua/rpi.init:8: in function 'logMsg'
        lua/rpi.init:47: in main chunk


是否可以通过SSH(bash、lua或其他方式)运行脚本,并让它们在远程机器上执行io操作


另外,从远程脚本向本地主机返回值的最佳方式是什么?我通过调用print()从脚本返回值,以便本地脚本能够实际使用。

您会收到此错误,因为
io.open
调用返回一个nil值和一条错误消息。您可能需要将此行
logFile=io.open(“logs/pi.init.log”,“a+”)
更改为如下内容:

local logFile, err = io.open("logs/pi.init.log", "a+")
if not logFile then error(err, 2) end

io.open
调用未成功时,这将打印错误消息。在您的情况下,这可能是由于不存在
日志
文件夹、权限不足或其他原因造成的;错误消息应该为您指出正确的方向。

这太完美了。当远程运行时,我需要指定日志文件的完整路径,相对路径不起作用!lua:lua/rpi.init:47:logs/pi.init.log:没有这样的文件或目录
local logFile, err = io.open("logs/pi.init.log", "a+")
if not logFile then error(err, 2) end