VPN技术 · 2023年11月10日 0

定时执行的代理脚本

定时执行的代理脚本

定时执行的代理脚本

许多用户反馈,Shadowsocks 在运行一段时间后,进程会意外消失。这种情况通常是由于系统将其强制终止所致。导致这一问题的原因可能包括 VPS 的配置、Shadowsocks 本身的缺陷,例如内存不足或多端口使用导致的内存占用过高等。

为了解决这个问题,我编写了一个用于检查 Shadowsocks 进程的脚本,能够在发现进程不存在时自动重启。

请以 root 用户身份登录,并执行以下命令:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-crond.sh chmod +x shadowsocks-crond.sh 

此命令将下载脚本 shadowsocks-crond.sh,并为其赋予执行权限。

接下来,将该脚本添加到 Linux 的定时任务 cron 中即可。cron 是 Linux 系统下用于定时执行任务的工具,能够在无需人工干预的情况下自动运行作业。请注意,Cron 是 Linux 的内置服务,通常情况下不会自动启动,可以通过以下命令启动、停止或重启该服务:

/etc/init.d/crond start //启动服务
/etc/init.d/crond stop //关闭服务
/etc/init.d/crond restart //重启服务
/etc/init.d/crond reload //重新载入配置

配置 /etc/crontab 文件以启用 cron

默认情况下,该文件内容如下:

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/  # For details see man 4 crontabs  # Example of job definition: # .---------------- minute (0 - 59) # |  .------------- hour (0 - 23) # |  |  .---------- day of month (1 - 31) # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # |  |  |  |  | # *  *  *  *  * user-name command to be executed 

只需在文件末尾添加以下一行:

*/5 * * * * root bash /root/shadowsocks-crond.sh 

完成后保存并退出。这条配置指示系统每 5 分钟由 root 用户执行一次脚本 /root/shadowsocks-crond.sh,注意路径需写全。

通过这种设置,系统将每 5 分钟检查一次 Shadowsocks 进程的存在性,若进程缺失,则会自动重启。同时,脚本每次运行时会记录日志,日志的完整路径为:

/var/log/shadowsocks-crond.log 

可以定期查看该日志文件,以确认 Shadowsocks 进程是否频繁消失。如果确实存在此问题,可能需要进一步排查深层次的原因。

更新于 2016 年 12 月 05 日:

  • 已针对新发布的四合一 Shadowsocks 一键安装脚本及之前的单版本进行了相应调整。