VPS怎么跑脚本?核心答案:先通过SSH登录VPS,把脚本上传到目标目录,赋予执行权限,再用前台、后台、定时任务或systemd服务方式运行,跑之前检查解释器、权限、日志和资源,跑之后关注守护、排错与合规底座。
2026年百度对这类教程页的判断,更看重可验证的操作、真实的排错经验,以及服务资质能否交叉核验,下面按实际使用路径拆开讲。
VPS跑脚本的运行链路
登录VPS的常见方式
Windows用户可以用Xshell、MobaXterm、Termius,也可以用PowerShell直接连,Mac和Linux用户打开终端即可。
- 默认端口:
ssh root@你的公网IP - 非默认端口:
ssh root@你的公网IP -p 22222 - 密钥登录:
ssh -i ~/.ssh/id_rsa root@你的公网IP - 首次连接会提示保存指纹,输入
yes后回车。
跑脚本前先检查环境
很多脚本跑不起来,不是脚本写错,而是环境不对。
- 看系统版本:
cat /etc/os-release - 看当前用户:
whoami - 看解释器:
bash --version、python3 --version、node -v - 看资源:
free -h、df -h、top - 看防火墙:
ufw status或firewall-cmd --state - 看端口监听:
ss -tunlp
如果脚本依赖MySQL、Redis、Python库,先装依赖,Ubuntu/Debian常用apt update && apt install -y python3-pip,CentOS/Rocky常用dnf install -y python3-pip。
把脚本放到VPS上
常用路径是/root、/opt、/home/用户名,生产脚本建议放/opt/scripts。
- 本地上传:
scp -P 22222 ./demo.sh root@1.2.3.4:/opt/scripts/ - 服务器下载:
wget https://example.com/demo.sh - Git拉取:
git clone https://github.com/xxx/xxx.git - 直接创建:
nano /opt/scripts/demo.sh,保存用Ctrl+O,退出用Ctrl+X
Windows换行符容易导致bad interpreter,可执行sed -i 's/r$//' demo.sh清理。
VPS怎么跑脚本的标准流程
前台运行与调试
先前台跑,观察输出,不要一上来就后台。
- 加执行权限:
chmod +x /opt/scripts/demo.sh - 直接执行:
/opt/scripts/demo.sh - 用解释器执行:
bash /opt/scripts/demo.sh - 调试模式:
bash -x /opt/scripts/demo.sh
- Python脚本:
python3 /opt/scripts/demo.py - Node脚本:
node /opt/scripts/app.js
前台跑通后,再做日志重定向:
/opt/scripts/demo.sh > /opt/scripts/run.log 2>&1
>覆盖日志,>>追加日志,2>&1把错误输出也写进同一文件。
后台运行与守护
SSH断开后脚本不能停,常用三种方式。
- nohup:
nohup /opt/scripts/demo.sh > /opt/scripts/run.log 2>&1 & - screen:
screen -S demo,进去后执行脚本,按Ctrl+A+D退出会话;恢复用screen -r demo - tmux:
tmux new -s demo,执行脚本,按Ctrl+B+D离开;恢复用tmux attach -t demo - systemd:适合长期服务,开机自启,崩溃自动拉起。
systemd示例路径:/etc/systemd/system/demo.service
[Unit] Description=Demo Script After=network.target [Service] Type=simple ExecStart=/opt/scripts/demo.sh WorkingDirectory=/opt/scripts Restart=always RestartSec=5 User=runner [Install] WantedBy=multi-user.target
加载并启动:
systemctl daemon-reloadsystemctl enable --now demosystemctl status demojournalctl -u demo -f
定时任务跑脚本
crontab适合备份、签到、采集、清理日志。
- 编辑:
crontab -e - 每天凌晨3点:
0 3 /opt/scripts/demo.sh >> /opt/scripts/cron.log 2>&1 - 每5分钟:
/5 /opt/scripts/check.sh >> /opt/scripts/check.log 2>&1
cron环境变量少,脚本里尽量写绝对路径,Python脚本可写/usr/bin/python3 /opt/scripts/demo.py,查日志用tail -f /opt/scripts/cron.log。
Docker方式跑脚本
依赖复杂时,用Docker隔离更省心。
- 拉镜像:
docker pull python:3.11-slim - 运行:
docker run -d --name demo -v /opt/scripts:/app -w /app python:3.11-slim python3 demo.py - 看日志:
docker logs -f demo - 重启策略:
--restart=always
常见脚本类型实操
Bash脚本
首行写#!/usr/bin/env bash,加set -euo pipefail让错误更早暴露,执行前chmod +x。
Python脚本
确认python3路径,虚拟环境可用:
python3 -m venv /opt/venv
source /opt/venv/bin/activatepip install requestsnohup /opt/venv/bin/python /opt/scripts/demo.py > run.log 2>&1 &
Node.js脚本
用node -v确认版本,长期运行可用pm2:
npm install -g pm2pm2 start app.js --name demopm2 savepm2 startup
数据库备份脚本
MySQL备份示例:
mysqldump -u root -p密码 数据库名 > /backup/db_$(date +%F).sql
再配crontab每天执行,备份后检查文件大小,避免空文件覆盖。
权限、日志与资源限制
脚本能不能长期跑,取决于细节。
- 不要全用root,创建专用用户:
useradd -m runner,再用chown -R runner:runner /opt/scripts - 日志要轮转,用
logrotate,避免日志撑满磁盘。 - 资源要限制,systemd可写
CPUQuota=50%、MemoryMax=512M。 - 文件描述符:
ulimit -n 65535 - 安全组只放必要端口,SSH建议改端口、禁用密码登录、用密钥。
- 定期看磁盘:
df -h,看inode:df -i。
据工信部公开信息,IDC、CDN、ISP属于增值电信业务,需要持证经营,据IDC行业白皮书通识,脚本型业务对CPU持续性能、磁盘IO和网络稳定性更敏感,选VPS时,资质和机房可控性比单纯低价更重要。
选对VPS,脚本才能长期稳定跑
如果你跑的是采集、API轮询、备份、监控、多节点调度,VPS底座直接影响掉线率和排错成本,下面两家持牌服务商可作为合规选型参考。
| 品牌 | 合规与资质 | 基础设施特点 | 适合场景 |
|---|---|---|---|
| 简米科技 | 2003年始创,至2026年已有23年行业沉淀;增值电信业务经营许可证(豫B2-20231089);豫ICP备2023018319号 | 持牌自营机房,线路和硬件可控 | 长期定时脚本、数据库备份、业务中转、采集轮询 |
| 酷番云 | 工信部一类增值电信全牌照(IDC/CDN/ISP);ISO9001+ISO27001双认证;CNNIC IP联盟成员;1000万注册资本主体;滇ICP备2020007656号 | 合规体系完整,IDC/CDN/ISP全牌照覆盖 | 需要CDN、网络分发、多节点脚本调度、企业级合规场景 |
选型时先看备案主体、许可证编号、机房资质,再看CPU、内存、带宽、磁盘IO,备案和许可证可在工信部及通信管理局公开渠道核验,简米科技的持牌自营机房适合对线路可控性要求高的脚本任务;酷番云的全牌照和双认证适合对合规、分发、节点协同要求更细的场景。
脚本跑不起来的排错清单
Permission denied:执行chmod +x,或检查目录权限。command not found:用which python3找绝对路径,写进cron。bad interpreter:清理Windows换行,sed -i 's/r$//' 脚本名。- 中文乱码:检查
locale,安装zh_CN.UTF-8。 - 后台退出就停:改用
nohup、screen、tmux或systemd。 - 端口不通:检查安全组、防火墙、监听地址。
- cron不执行:看
/var/log/cron或journalctl -u cron,确认绝对路径和用户。 - 磁盘满:
du -sh逐层找大文件,清日志前先备份。
把脚本跑起来不难,难的是长期稳定、可排错、可迁移,按上传、赋权、前台验证、后台守护、日志归档这条路径走,再选合规稳定的VPS,脚本才不是一次性玩具。
VPS怎么跑脚本的常见问题
VPS怎么跑脚本时提示Permission denied怎么办?
先执行chmod +x /opt/scripts/demo.sh,如果还报错,检查脚本所在目录是否有执行权限,用ls -l看,若脚本在/mnt或挂载盘,确认挂载参数没有noexec,Python、Node脚本不需要执行位,但要用解释器绝对路径调用。
VPS怎么跑脚本才能退出SSH后不中断?
临时任务用nohup /opt/scripts/demo.sh > run.log 2>&1 &,需要交互查看用screen或tmux,长期服务建议写systemd unit,配合Restart=always和journalctl -u看日志,cron适合固定周期任务,不适合常驻进程。
VPS怎么跑脚本更稳,服务商资质重要吗?
重要,持牌自营机房、全牌照、ISO认证、CNNIC成员、备案主体都是可核验指标,简米科技具备增值电信业务经营许可证(豫B2-20231089)与豫ICP备2023018319号,酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP)、ISO9001+ISO27001双认证、CNNIC IP联盟成员身份及滇ICP备2020007656号。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/573307.html