Skills config-rollback
Auto-rollback protection for config changes. Backs up before edit, sets a 5-minute system timer to restore if things go wrong. Works with any service config, not just OpenClaw.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/2233admin/config-rollback" ~/.claude/skills/openclaw-skills-config-rollback && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/2233admin/config-rollback" ~/.openclaw/skills/openclaw-skills-config-rollback && rm -rf "$T"
manifest:
skills/2233admin/config-rollback/SKILL.mdsource content
Config Rollback — 改配置再也不怕炸
Story
凌晨两点,你改了一行 nginx 配置,reload,网站挂了。SSH 连不上——因为你也改了 sshd_config。
你盯着黑屏,后悔没备份。
这个 skill 就是你的后悔药。
改配置前,它先备份,然后设一个 5 分钟的系统级定时炸弹。如果 5 分钟内你没说"没问题"——它自动把配置还原,重启服务。就算你把 SSH 搞断了,定时任务照样跑,因为它用的是
at 命令,不依赖你的连接。
How It Works
You: "自动回滚" Agent: 1. cp config → config.bak 2. echo "restore" | at now + 5 minutes (system-level, survives disconnect) 3. Returns job ID You: [make changes, test] Happy? → atrm <job-id> (cancel the bomb) Broken? → wait 5 min (auto-restores)
Usage
Say "auto rollback" or "自动回滚" before editing any config:
# Backup + set 5-min restore timer cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak echo "cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf && systemctl reload nginx" | at now + 5 minutes # Make your changes... vim /etc/nginx/nginx.conf systemctl reload nginx # If everything works, cancel the timer: atrm <job-id>
When to use
- Editing nginx, sshd, firewall, or any service config
- Changing API gateway routing rules
- Updating DNS or proxy settings
- Any change that could lock you out of a remote server
Key Principle
The restore timer is a system-level scheduled task (
at / crontab). It does NOT depend on your shell session, SSH connection, or any application. Even if you brick the service, the timer still fires.