定期连接北大网关

Tag: systetemd 定期执行 curl 命令连接北大网关的完整指南

在这篇博客中,我们将详细介绍如何使用 systemd 定期执行一个 curl 命令来连接北京大学的网络网关。这种方法不仅可以自动化网络连接过程,还可以确保使用敏感信息的安全性。如果你需要了解更多关于如何使用 curl 命令连接北大网关的信息,可以访问 北大信息网关客户端下载页面

前提条件

  • 你需要具有 sudo 权限的用户。
  • 一个支持 systemd 的 Linux 系统。

步骤 1:创建 systemd 服务文件

首先,我们需要创建一个 systemd 服务文件来定义要执行的 curl 命令。

1
sudo vim /etc/systemd/system/curl-service.service

在文件中添加以下内容:

1
2
3
4
5
6
7
[Unit]
Description=Run curl command to connect to PKU gateway

[Service]
Type=oneshot
EnvironmentFile=/root/PKU_creds.env
ExecStart=/bin/bash -c '/usr/bin/curl -X POST -d "cmd=open&username=${USERNAME}&password=${PASSWORD}&iprange=free" <https://its4.pku.edu.cn/cas/ITSClient> 2>&1'

解释

  • EnvironmentFile: 指定一个文件路径,该文件存储环境变量,如用户名和密码。
  • ExecStart: 定义要执行的命令,使用 bash 执行 curl 命令。

步骤 2:创建 systemd 定时器文件

接下来,我们创建一个定时器文件以每五分钟运行一次服务。

1
sudo vim /etc/systemd/system/curl-service.timer

在文件中添加以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[Unit]
Description=Run curl command every 5 minutes to maintain PKU gateway connection

[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=curl-service.service

[Install]
WantedBy=timers.target

解释

  • OnBootSec: 系统启动后等待 5 分钟首次执行。
  • OnUnitActiveSec: 每 5 分钟执行一次。

步骤 3:创建环境变量文件

为了保护敏感信息,我们将用户名和密码存储在一个单独的文件中。

1
sudo vim /root/PKU_creds.env

在文件中添加以下内容:

1
2
USERNAME=your_username
PASSWORD=your_password

确保该文件的权限设置为只有 root 可以读取:

1
sudo chmod 600 /root/PKU_creds.env

步骤 4:启动和启用定时器

最后,重新加载 systemd 配置,并启动和启用定时器。

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable curl-service.timer
sudo systemctl start curl-service.timer

检查日志输出

要查看 curl 命令的输出和服务状态,可以使用以下命令:

1
sudo journalctl -u curl-service.service

结论

通过以上步骤,你可以成功地使用 systemd 定期执行 curl 命令来自动连接北大的网络网关,并安全地管理敏感信息。这种自动化方法不仅提高了效率,还保证了操作的安全性和稳定性。