【问题标题】:Automate SNX restart with crontab使用 crontab 自动重启 SNX
【发布时间】:2019-06-10 19:36:34
【问题描述】:

我正在使用使用 SSL 网络扩展器 (SNX) 的 VPN 连接来连接到远程服务器。来自远程服务器的连接仅限于 12 小时。之后连接被断开,必须重新启动 SNX 服务器。为了克服这些困难,我尝试使用 crontab 自动重启 SNX。

  1. 我创建了一个名为 vpn.sh 的 shell 脚本文件。
#!/bin/bash
snx -d
sleep 3
echo 'password' | snx
  1. 我在主目录中有配置文件调用.snxrc
server server.com
username username
reauth yes
  1. 在我的 crontab (crontab -e) 配置中

* */12 * * * bash /home/username/vpn.sh > /home/username/cron.log

每 12 小时运行一次。但snx -d 运行成功,但在达到echo 'newpass6' | snx 时出现此错误:

Failed to init terminal!

有没有人遇到过这样的问题?请帮我。我已经挣扎了一个星期了。提前致谢。

我已经按照这个链接设置snx

【问题讨论】:

  • 如果我直接从命令提示符执行 bash 脚本,它工作正常,但如果在 crontab 中执行相同的脚本,则会出现上述问题
  • 没有理由不投票,我也有类似的问题... +1
  • 对我来说另一种选择是使用 screen 命令,它允许我将 snx 作为 systemd 服务运行。虽然我还必须在 snx 调用后使用 sleep 365d 以便屏幕不会立即退出。

标签: linux cron vpn


【解决方案1】:

因为 snx 客户端在没有终端的情况下无法启动。所以我在我的脚本中加入了这些命令,以便在 byobu 会话中启动 snx。

byobu new-session -d -s vpn;
byobu new-window -t vpn:1 -n "snx" "echo your_password | snx -s your_ip -u your_user; sleep 10"

【讨论】:

  • 非常感谢您的帮助。像魅力一样工作!
  • 命令echo your_password | snx -s your_ip -u your_user; sleep 10 根本不执行。创建了一个空会话。
【解决方案2】:

批准的答案对我不起作用。它创建了一个空的 tmux 会话,其中没有执行任何命令。所以这是我完成这项任务的方式:

byobu-tmux new-session -d "echo <password> | nohup snx -s <host> -u <user>"

只需一个命令即可使其工作。 nohup 是必需的,因为 snx 进程将进入后台并返回提示。之后,tmux 退出,并且 snx 没有分配给终端。 tmux退出后没有nohup,系统会终止snx进程。

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2014-03-25
    • 1970-01-01
    • 2021-11-24
    • 2020-01-01
    • 2015-05-23
    相关资源
    最近更新 更多