通过SSH执行Lua脚本和文件io操作
我正在尝试远程运行脚本(远程是服务器B)。当我在服务器A上本地运行脚本时,我得到了预期的结果。当我通过SSH将脚本从服务器A运行到服务器B时,出现以下错误:通过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
/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