使用 lynx 运行 cron 脚本无法正常工作

Den*_*nis 6 cron lynx shell-script

我正在尝试自动化只能通过浏览器完成的登录过程。我正在使用 lynx 浏览器来编写执行此操作所需的操作。Lynx 通过将用户的击键转储到一个文件中,然后它允许一个标志:-cmd_script=scriptfile加载脚本来做到这一点。

我调用lynx:

lynx -accept_all_cookies -cmd_script="myscript.lynx" www.example.com
Run Code Online (Sandbox Code Playgroud)

从我的交互式终端,生成的脚本非常适合我。

我有 cron 运行任务,但它不起作用。我检查了 /var/log/everything.log 并注意到当脚本运行时,lynx 询问:

Your Terminal type is unknown!
Enter a terminal type: [vt100]
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用了-term=linux停止问题的标志,但登录过程似乎仍然没有超过第一页(通过查看日志文件)。

我已经尝试了尽可能多的建议。我从 env (在交互式终端中)复制结果并将它们粘贴到脚本中,以查看环境是否会修复它,但遗憾的是它没有。

另一个注意事项:我的登录过程涉及重定向(它不会在 lynx 浏览器中重定向,所以我只需按照它提供的链接进行操作)

Den*_*nis 1

事实证明这是一个简单的错误。当我使用 flag 时-cmd_script="myscript.lynx",我已将其放置myscript.lynx在与脚本相同的目录中(恰好是/root/bin)。我发现 lynx 从未运行过该脚本,原因是 cron 显然是从用户的主目录运行的。因为我使用的是 root 的 crontab,所以它正在搜索/rootmyscript.lynx而不是/root/bin像我希望的那样。

简单的修复方法?-cmd_script="/root/bin/myscript.lynx"