AI дерекқорды жойды: қалпына келтірудің 7 минуттық жоспары
MarkdownДеректер жойылғаннан кейін не істеу керек: агентті тоқтатыңыз, оқиғаны құжаттаңыз, git reflog, PITR, снапшоттар және файлдарды қалпына келтіруді қолданыңыз. Мысалдар мен қорғаныс шаралары.
Мақаланы толық оқу
Негізгі түйін
AI агент дерекқорыңызды, файлдарыңызды немесе бүкіл өндірістік ортаңызды жаңа ғана жойды. Алғашқы 7 минут деректеріңізді қалпына келтіретініңізді не олардан біржола айырылатыныңызды анықтайды. Бұл нұсқаулықта әр минутқа арналған нақты командалар берілген. Алдымен агентті тоқтатыңыз, содан кейін оқиғаны құжаттаңыз, содан соң қалпына келтіріңіз. Дүрлікпеңіз — тізімді орындаңыз.
Ailoot-пен жұмыс істеу туралы практикалық ақпарат құжаттамада берілген.
Алғашқы минутта не істеу керек: ТОҚТАҢЫЗ, дүрлікпеңіз
Негізгі түйін
Зиянды жазушыны, агент тоқтағаннан кейін жалғасатын бала процесін қоса, дереу тоқтатыңыз. Қайта жүктемеңіз және жойылған файлды ашық ұстап тұруы мүмкін қатысы жоқ процестерді аяқтамаңыз. Қалпына келуге кепілдік жоқ: үстінен жазу мен SSD discard/TRIM оны мүмкін емес етуі мүмкін. Зақымданған көшірмені өзгертпес бұрын дәлелдер мен аман деректерді бөлек тексерілген құрылғыға сақтаңыз.
Бұл сіздің басыңызға түскенде, ең алдымен агентті тоқтатыңыз. Оның әрекеттерін өзіңіз кері қайтаруға тырыспаңыз, «бәрін қалпына келтір» деп айтпаңыз және жаңа сұраулар жібермеңіз. Агенттің әрбір келесі әрекеті деректеріңіз әлі сақталуы мүмкін диск блоктарын басып кетуі ықтимал.
Агенттің терминалын жабыңыз
Қауіпті пәрменді Ctrl+C арқылы дереу үзіңіз; жою біткенін күтпеңіз. Агентті тоқтату бала пәрменін, қашықтағы job не дерекқор сұрауын міндетті тоқтатпайды. Нақты жазушыны тауып, сол әрекетті тоқтатыңыз не болдырмаңыз; деректі құрта берсе, күштірек аяқтау қажет болуы мүмкін. Қалпына келетін ашық файлдары бар қатысы жоқ процестерді сақтаңыз.
Ноутбукты ҚАЙТА ЖҮКТЕМЕҢІЗ
Жойылған дерек қалпына келуі мүмкін, бірақ сақтау жүйесі, дерекқор әрекеті, SSD discard/TRIM және кейінгі жазулар анықтайды. Зақымданған томға жазуды азайтыңыз; байттар әлі бар деп санамаңыз.
Ашық процестерді ЖАППАҢЫЗ
Жойылған файлды ашық ұстайтын қатысы жоқ процестерді сақтаңыз: дескриптор арқылы қалпына келтіру мүмкін болуы ықтимал. Бұл зиянды жазушыға қатысты емес: оны алдымен тоқтатыңыз. Ашық handle сақтау үшін жоюды жалғастырмаңыз.
Экран жазбасын бастаңыз
Нақты уақытты, әсер еткен жолдарды және көрінетін пәрмен шығысын тіркеңіз. Жазба не журнал көшірмесін зақымданған томға емес, бөлек тексерілген құрылғыға сақтаңыз. Қалпына келтіруден бұрын аман бақыланатын, бақыланбайтын, еленбейтін файлдар мен Git метадеректерін сонда көшіріңіз.
Енді қалпына келтіруге 6 минут бар. Бастайық.
2–3-минуттар: нақты не болғанын құжаттаңыз
Негізгі түйін
Қалпына келтіруді бастамай тұрып, жағдайды анықтаңыз. «Нені, кім, қашан және қандай командалармен жойғанын» нақты білмесеңіз, көз жұмып қалпына келтіресіз және әлі бүтін деректерді жойып алуыңыз мүмкін. Жаңа терминал терезесін ашыңыз (агент жұмыс істеп тұрған терезені емес), git status, git log --since және ps aux | grep claude командаларын орындаңыз. Агенттің толық сеанс журналын қамтитын ~/.claude/projects/ қалтасын дереу көшіріңіз: ол қалпына келтіруге көмектесуі мүмкін.
Жаңа терминал терезесін ашыңыз. Агент жұмыс істеп тұрған терезе емес — басқа терезе. Мына үш команданы ретімен орындаңыз.
1. Git репозиторийінде нақты не өзгергенін тіркеңіз:
git status
git log --since="30 minutes ago" --all --oneline
Жойылған бақыланатын файл индексте не коммитте қалуы мүмкін. Restore-дан бұрын бақыланбайтын және еленбейтін файлдарды қоса қазіргі ағашты сақтаңыз; орнында қалпына келтіру аман түзетулердің үстінен жаза алады. Бөлек көшірмеде қарап, қалпына келтіріңіз.
2. Қай агент процестері жұмыс істеп тұрғанын тексеріңіз:
ps aux | grep -i claude
ps aux | grep -i cursor
Қай процесс қауіпті жазуды жалғастырып жатқанын анықтаңыз; атаудың сәйкестігі жеткіліксіз. Сол жазушыны тоқтатып, тоқтағанын тексеріңіз. Пайдалы ашық файлы бар қатысы жоқ процестерді сақтаңыз; қалыпты аяқтау өтпей, жою жалғасса, мәжбүрлеп тоқтату қажет болуы мүмкін.
3. Агент сеансының журналын сақтаңыз:
Claude Code JSONL сеанстарын ~/.claude/projects/ ішінде сақтайды. Cursor оларды ~/.cursor/ ішінде сақтайды. Дәл қазір көшірмесін жасаңыз:
cp -r ~/.claude/projects /external/incident-evidence/claude-projects
/external/incident-evidence/ орнына бөлек тексерілген жалғанған құрылғыдағы бар дәлел қалтасын қойыңыз. Көшірмені зақымданған томға жазбаңыз және бар дәлелдің үстінен жазбаңыз. Бұл қалтада агентпен болған әңгіме сөзбе-сөз сақталады: ол қандай командаларды орындады, не деп жауап берді және қандай ретпен. Бұл оқиғаны зерттеудің және агент контекстінен жойылған файлдарды қалпына келтірудің негізгі көзі (4-қадамды қараңыз).
4-минут: git reflog — ең жақсы мүмкіндігіңіз
Негізгі түйін
Reflog тармақ тарихынан жоғалған коммиттерді таба алады, бірақ коммиттелмеген жұмыс файлдарын сақтамайды. Аман деректер мен Git метадеректерін бөлек құрылғыға сақтағаннан кейін көшірілген репозиторийді қарап, тексерілген коммитті бөлек worktree-ге шығарыңыз. Зақымданған жұмыс ағашын reset етуден ешқашан бастамаңыз.
git reflog жазбалар сақталғанша жергілікті reference қозғалысын тіркейді. Мерзім мен pruning өзгереді, қолжетімсіз объектілер жойылуы мүмкін; ол әр бұрынғы коммиттің кепілді архиві емес. Төмендегі қалпына келтіруді бөлек құрылғыдағы сақталған репозиторий көшірмесінен орындаңыз.
1-қадам. Журналды қараңыз:
git reflog --all
Мынаған ұқсас тізім аласыз:
1a2b3c4 HEAD@{0}: reset: moving to HEAD~3
9z8y7x6 HEAD@{1}: commit: working version of the dashboard
5w4v3u2 HEAD@{2}: commit: added admin panel
Агент зиян келтіргенге дейінгі нүктені іздеңіз. Әр жазба — сол сәттегі репозиторий күйінің «снапшоты».
2-қадам. Бөлек жұмыс ағашына қалпына келтіріңіз:
Репозиторий мен аман қалған барлық жұмысты бөлек құрылғыға көшіргеннен кейін сол сақталған репозиторий көшірмесінде орындаңыз. Мәнді reflog-та тексерген нақты commit SHA-мен ауыстырып, бос тармақ пен нысана таңдаңыз:
RECOVERY_COMMIT='replace-with-verified-commit-sha'
git worktree add -b recovery-check ../recovery-check "$RECOVERY_COMMIT"
../recovery-check файлдарын қарап, бірдеңені кері көшірмес бұрын сақталған коммиттелмеген файлдармен салыстырыңыз. Пәрмен таңдалған коммитті бөлек ашады, зақымданған ағашты reset етпейді. Байланысқан worktree-лер көшірілген репозиторийдің Git object store-ын бөліседі, сондықтан бұл — тәуелсіз резерв емес, қалпына келтіру workspace-і. Ресми git-worktree құжаттамасын қараңыз.
Егер reflog та тазаланса (агент git gc орындап үлгерсе):
git fsck --lost-found
Бұл команда ешбір тармаққа тіркелмеген «жоғалған» коммиттер мен blob-тарды (файл нысандарын) табады. Олар .git/lost-found/commit/ және .git/lost-found/other/ ішінде пайда болады. Файлды сол жерден қалпына келтіру үшін:
git cat-file -p <SHA1-blob> > recovered-file.ext
git reflog көмектеспейтін жағдайлар:
- Файл тек жұмыс ағашында болып, коммитке не stash-ке кірмеген → reflog оны көре алмайды
- 90 күннен көп уақыт өтіп,
git gcорындалған (gc.reflogExpireәдепкі мәні) - Бүкіл репозиторий жойылған (
rm -rf .git) — онда Time Machine немесе снапшот қажет
5-минут: дерекқорды сақтық көшірмеден қалпына келтіріңіз
Негізгі түйін
PostgreSQL-дің уақыттың кез келген секундына қалпына келтіруі (PITR) дерекқорды 7–35 күндік аралықта кез келген сәтке қайтарады. Ол Yandex Cloud Managed Postgres, AWS RDS, Supabase Pro және Coolify ішіндегі жергілікті pg_dump cron тапсырмасымен жұмыс істейді. Негізгі талап — PITR оқиғаға дейін қосулы болуы керек; оны өткен уақытқа кері қосу мүмкін емес. Әрдайым жаңа инстансқа қалпына келтіріңіз, жұмыс істеп тұрған дерекқордың үстіне емес, әйтпесе қайтару одан да көп деректі жояды. PITR қосылмаған болса, ең соңғы снапшотты қолданыңыз.
Дерекқор DROP DATABASE, DROP TABLE немесе DELETE FROM ... WHERE ... (WHERE шартынсыз) арқылы жойылды. Не істеу керек?
1-қадам. Провайдеріңіз PITR ұсынатынын анықтаңыз:
| Провайдер | PITR аралығы | Қалпына келтіру командасы |
|---|---|---|
| AWS RDS | 1–35 күн (конфигурацияланады) | aws rds restore-db-instance-to-point-in-time --restore-time 2026-05-28T14:30:00Z |
| Yandex Cloud Managed Postgres | 7 күн (әдепкіде) | Консольдегі сақтық көшірмеден қалпына келтіріп, уақытты көрсетіңіз |
| Supabase Pro | 7 күн (тек Pro+) | UI: Database → Backups → Restore |
| Coolify + жергілікті pg_dump | cron кестесіне сай | pg_restore -d new_db backup.dump |
2-қадам. Ескі инстансқа емес, жаңасына қалпына келтіріңіз:
Жұмыс істеп тұрған дерекқордың үстінен ешқашан қалпына келтірмеңіз. Сақтық көшірмеден жаңа инстанс жасаңыз да, қолданбаны соған ауыстырыңыз. Бірдеңе дұрыс болмаса, DNS-ті кері ауыстыра аласыз.
3-қадам. PITR қосылмаған болса, ең соңғы снапшотты қолданыңыз:
# AWS RDS, снапшоттарды тізімдеу:
aws rds describe-db-snapshots --db-instance-identifier my-db
# Снапшоттан қалпына келтіру:
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier my-db-restored \
--db-snapshot-identifier rds:my-db-2026-05-28-12-00
Supabase туралы маңызды жайт 2026 жылы көп адамның басына қиындық әкелді: PITR қосылғанда, күнделікті сақтық көшірмелер жасалмай қалады. Бұл күтпеген жағдай; нәтижесінде мүлде сақтық көшірмесіз қалуыңыз мүмкін. PITR белсенді екенін ЖӘНЕ қалпына келтіруге арналған снапшот барын тексеру үшін Dashboard → Database → Backups бөліміне өтіңіз.
6-минут: Time Machine, lsof және диск снапшоттары
Негізгі түйін
Файлдар git-тен не дерекқордан емес, дискіден жойылса, қалпына келтірудің үш практикалық жолы бар. macOS жүйесінде Time Machine-ді сағат сайынғы снапшоттарымен қолданыңыз (егер ноутбук Time Capsule-ға немесе сыртқы дискіге қосылған болса). Linux жүйесінде sudo lsof | grep deleted орындаңыз — ол процесс әлі ашық ұстап тұрған файлдарды шығара алады (мүмкіндігі 95%); оларды /proc/PID/fd/N арқылы көшіріңіз. Маңызды жағдайларда бүкіл бөлімнің dd снапшотын жасаңыз, содан кейін extundelete немесе photorec арқылы қалпына келтіріңіз.
macOS—Time Machine:
# Снапшоттарды тізімдеу:
tmutil listbackups
# Ең соңғы сақтық көшірмеден файлды қалпына келтіру:
tmutil restore /Volumes/Backup/.../my-project/file.tsx ~/projects/my-project/file.tsx
Time Machine сағат сайын снапшот жасайды, сағаттық снапшоттарды бір күн, күнделіктерін бір апта сақтайды, ал апталықтарын мерзімсіз сақтайды. Ноутбук Time Capsule-ға не сыртқы дискіге қосылған болса, жобаңыздың сағат сайынғы көшірмесі сонда болады.
Linux—файл жойылған, бірақ процесс оны әлі ашық ұстап тұр:
# Процестер ашық ұстап тұрған барлық «жойылған» файлдарды табу:
sudo lsof | grep deleted
# Мынаған ұқсас жолдар шығады:
# node 12345 user 24w REG 8,1 4096 1234567 /path/to/deleted/file.txt (deleted)
# Файлды /proc/PID/fd/N ішінен тікелей көшіру:
sudo cp /proc/12345/fd/24 ~/recovered-file.txt
Процесс жабылмаған болса, сәттілік ықтималдығы шамамен 95%. ext4, xfs, btrfs жүйелерінде жұмыс істейді.
macOS—lsof арқылы баламасы:
lsof | grep deleted
Файлды көшіру қиынырақ (/proc/ жоқ), бірақ мұны lldb арқылы жасауға болады:
lldb -p 12345
(lldb) memory read --outfile recovered.txt --binary 0xADDRESS 0xSIZE
Бүкіл дискінің снапшоты (Linux, соңғы амал):
sudo dd if=/dev/sda1 of=/external/disk-image.img bs=4M status=progress
Бұл бүкіл бөлімді кескін файлы ретінде сақтайды. Содан соң extundelete немесе photorec арқылы қалпына келтіріңіз. Қалпына келтіру мүмкіндігі жойылғаннан бері дискіге қанша дерек жазылғанына байланысты. Ештеңе жазылмаған болса, мүмкіндік 80–90%. Диск бір сағат бойы жұмыс істеп тұрса, мүмкіндік 20–30%.
7-минут: сақтық көшірме болмаса не істеу керек
Негізгі түйін
Сақтық көшірме жоқ, git reflog бос, ал дискідегі деректер жаңа жазбалармен басылып кеткен. Соңғы амал ретінде екі нұсқа қалады: провайдердің қолдау қызметіне хабарласу (AWS, Yandex Cloud және Google Cloud ішкі сақтау жүйесінен деректерді кейде қалпына келтіреді) немесе S3 нұсқаларын қолдану (қосулы болса, барлық нұсқа физикалық түрде бар).
1-нұсқа—провайдердің қолдау қызметі:
AWS, Yandex Cloud, Google Cloud және DigitalOcean тұтынушы деректеріне қатысты апаттан кейін де ішкі сақтау жүйесінен деректерді мезгіл-мезгіл қалпына келтіреді, әсіресе ақылы жоспарларда. Қолдау қызметіне өтінім жіберіп, оқиғаның нақты уақытын көрсетіп, жағдайдың скриншоттарын тіркеңіз. Бұл көбіне өз жағында автоматты сақтық көшірмелерін сақтайтын ірі провайдерлерде жұмыс істейді. Мүмкіндігі — 40–60%; жауап беру мерзімі — 24–72 сағат.
2-нұсқа—S3 нұсқалары:
Файлдар S3 (немесе Yandex Object Storage) ішінде болып, нұсқалау қосулы болса, барлық нұсқа физикалық түрде бар; олар тек «жойылған» деп белгіленген.
# AWS—нұсқаларды тізімдеу:
aws s3api list-object-versions --bucket my-bucket --prefix files/
# Нұсқаны қалпына келтіру:
aws s3api copy-object \
--bucket my-bucket \
--copy-source my-bucket/files/data.json?versionId=ABC123 \
--key files/data.json
Маңызды ескерту: Claude Code сеанстарды мәңгі сақтамайды — ескі JSONL файлдары бірнеше аптадан соң автоматты түрде жойылады. Апат болғанда қолыңызда бір айлық JSONL тарихы болуы үшін ~/.claude/projects/ қалтасын қарапайым cron тапсырмасымен аптасына бір рет сыртқы дискіге көшіріңіз:
# Crontab ішінде, әр жексенбі 03:00-де:
0 3 * * 0 rsync -av ~/.claude/projects/ /external/claude-history-backup/
Бұл тегін және «бәрі жоғалды, сақтық көшірме жоқ, reflog бос» деген кезде құтқарады.
Мұның қайталанбауына арналған 7 ереже
Негізгі түйін
AI агенттің дерекқорыңызды немесе кодыңызды жоюына жол бермейтін жеті ереже. Жоюға әкелетін операциялар алдында Plan Mode қолданыңыз. Міндеттелген рұқсат шектерімен бірге таңдаулы қауіпті пәрмен жолдарын анықтайтын сыналған hook қолданыңыз. Агентке дерекқорға тек оқуға рұқсаты бар пайдаланушы беріңіз. Әр файл өзгерісінен кейін автоматты коммит жасаңыз. Тәжірибелер үшін оқшауланған sandbox қалтасын пайдаланыңыз. restic арқылы диск снапшоттарын сағат сайын жасаңыз. JSONL сеанстарын сыртқы дискіге архивтеңіз.
1. Жоюға әкелетін кез келген операция алдында Plan Mode қосыңыз. Claude Code ішінде:
claude --plan
Агент әрекет етпес бұрын жоспар құрады. Сіз оны оқып, DROP TABLE users жолын көріп, тоқтата аласыз. Plan Mode болмаса, агент өз бетімен шешім қабылдап, миллисекундтар ішінде орындайды. Толығырақ Claude Code ішіндегі Plan Mode нұсқаулығынан оқыңыз.
2. Hook-тар қосымша дабыл ретінде. Оқиға JSON-ын stdin арқылы оқып, танылған жоғары тәуекелге exit 2 беретін сыналған PreToolUse hook қолданыңыз. Төмендегі толық мысал Bash, Write және Edit-ті қамтиды; ол қауіпсіздік шекарасы емес және жанама әрекеттерді өткізуі мүмкін. Дерекқор рұқсаттары мен құмсалғышты шектеңіз.
3. Агентке тек оқуға арналған дерекқор пайдаланушысын беріңіз. Агентке арналған жеке пайдаланушы жасаңыз, оған DROP, TRUNCATE немесе DELETE рұқсаттарын бермеңіз:
CREATE USER claude_readonly WITH PASSWORD 'xxx';
GRANT CONNECT ON DATABASE myapp TO claude_readonly;
GRANT USAGE ON SCHEMA public TO claude_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_readonly;
Агентке жазу шынымен қажет болғанда, басқа пайдаланушыға қолмен ауысыңыз. Күнделікті тапсырмаларға (деректерді талдау, есептер, дашбордтар) тек оқуға арналған пайдаланушы жеткілікті.
4. Тексерілген өзгерістерді Git-те сақтаңыз. .claude/settings.json ішіндегі PostToolUse hook-ы Write және Edit әрекеттерінен кейін еске салу хабарын шығара алады:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "printf '%s\\n' 'Diff-ті тексеріп, тек келісілген файлдарға қолмен коммит жасаңыз.' >&2"
}
]
}
]
}
}
Бұл мысал тек еске салу хабарын шығарады; файлдарды индекске қоспайды және коммит жасамайды. Diff-ті тексеріп, тек келісілген файлдарға қолмен коммит жасаңыз. Reflog коммитке енгізілмеген өзгерістерді сақтамайды.
5. Тәжірибелерге арналған sandbox жоба. Агенттің нақты тұтынушы деректері бар жобада жұмыс істеуіне ешқашан жол бермеңіз. Жобаның көшірмесі мен жасанды деректері бар бөлек ~/sandbox-projects/ қалтасын жасаңыз. Онда жаңа сұрауды, агентті немесе MCP серверін сынап көріңіз. Бірдеңе бұзылса, зияны жоқ.
6. restic арқылы сағат сайын диск снапшоттарын жасаңыз.
# Орнату:
brew install restic # macOS
sudo apt install restic # Linux
# Репозиторий жасау:
restic init --repo /external/backups
# Ағымдағы жобаның сақтық көшірмесін жасау:
restic --repo /external/backups backup ~/projects
# Сағат сайынғы cron кестесін орнату:
crontab -e
# Мынаны қосыңыз:
0 * * * * restic --repo /external/backups backup ~/projects
Сағат сайынғы сақтық көшірмені жеті күн, күнделікті сақтық көшірмені төрт апта сақтайды — өткеннің кез келген сәтіне қайтара аласыз. Бұл тегін және баптауға 10 минут кетеді.
7. Claude Code JSONL сеанстарын архивтеңіз. Жоғарыда айтылды, бірақ жеке ереже ретінде қайталаймыз: ~/.claude/projects/ қалтасын сыртқы дискіге аптасына бір рет rsync арқылы көшіріңіз. Бұл тегін әрі crontab ішіне бір жол жазуды қажет етеді.
Қауіпті командаларды бұғаттайтын дайын hooks
Негізгі түйін
Төменгі мысал — таңдаулы Bash жолдары мен сезімтал Write/Edit жолдарына арналған PreToolUse дабылы. Stdin JSON оқып, сәйкестікке exit 2 береді. Жанама не жасырылған әрекеттерді өткізуі мүмкін, сондықтан құмсалғыш пен шектелген credentials-ті толықтырады. Hook-ты бар конфигурацияға біріктіріп, қолданбас бұрын әрекетін сынаңыз.
Бұл жазбаны бар hook-тарды алмастырмай, .claude/settings.json ішіне біріктіріңіз:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Write|Edit",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/check-risk.py\""
}
]
}
]
}
}
Мына Python 3 скриптін .claude/hooks/check-risk.py ретінде жасаңыз:
import json
import re
import sys
from pathlib import Path
try:
event = json.load(sys.stdin)
tool = event["tool_name"]
data = event["tool_input"]
blocked = False
if tool == "Bash":
command = data["command"]
blocked = bool(re.search(
r"drop\s+(database|table)|truncate\s+table|"
r"delete\s+from.*where\s+1|rm\s+-rf|"
r"git\s+reset\s+--hard|git\s+push.*(--force|-f)|"
r"chmod\s+-R\s+777",
command, re.IGNORECASE | re.DOTALL))
elif tool in ("Write", "Edit"):
path = Path(data["file_path"]).resolve()
blocked = (".git" in path.parts or path.name.startswith(
(".env", "credentials", "secrets")))
except (ValueError, KeyError, TypeError, OSError):
print("BLOCKED: invalid hook input", file=sys.stderr)
sys.exit(2)
if blocked:
print("BLOCKED: high-risk command or sensitive path", file=sys.stderr)
sys.exit(2)
sys.exit(0)
Hook құжатталған JSON оқиғасын stdin арқылы оқып, tool_input.command не tool_input.file_path тексереді және сәйкестікке exit 2 береді. Write пен Edit екеуін де тексереді. Сенбес бұрын зиянсыз рұқсат етілетін және бұғатталатын fixture-ді сынап, Python мен скрипттің шынымен басталатынын растаңыз.
Бұл — лексикалық дабыл: реті ауысқан жалауша, скрипт, alias, жасырылған пәрмен, басқа құрал не жанама жазуды өткізіп, қауіпсіз дәйексөзді де қабылдамауы мүмкін. OS/дерекқор рұқсаттарын бермейді не алмайды. Production credentials агент ортасынан тыс болсын, тек оқитын дерекқор рөлі мен міндеттелген құмсалғышты қолданыңыз, hook конфигурациясын өзгертуден қорғаңыз. Ресми hook кірісі мен аяқталу кодтарын қараңыз.
Әдейі ерекше әрекетті қарап, лайық шектелген аккаунтпен агенттен тыс орындаңыз. Shell орта айнымалысы құжатталған hook өшіру интерфейсі емес, hook-тар кәдімгі терминал пәрмендерін басқармайды.
AI-ға қашан рұқсат беру керек (және қашан бермеу керек)
Негізгі түйін
Нақты деректері бар жобаларда агентке --dangerously-skip-permissions жалаушасын мүлде бермеңіз. YOLO режимінде барлық қорғаныс өшіріледі, агент кез келген Bash командасын орындайды және файлдарды растаусыз жазады, ал іске қосылған қосалқы агенттер YOLO режимін өзгерте алмай қабылдайды. YOLO режимін тек жаңа MCP серверлерін немесе сұрауларды жасанды деректермен sandbox қалтасында сынауға қолданыңыз. Қалғанның бәріне нақты allow және deny ережелері бар .claude/settings.json арқылы дәл рұқсаттар беріңіз.
Anthropic --dangerously-skip-permissions жалаушасын (YOLO режимі деп те аталады) «сенімді орталарға» арналған мүмкіндік ретінде құжаттайды. 2026 жылғы шынайы жағдайда бұл — апатқа апаратын төте жол. Агент рұқсат сұрамайтын болса, ол:
- Кез келген Bash командасын растаусыз орындайды
- Файлдарды сұрамай жазады
- YOLO режимін мұра ететін қосалқы агентті іске қоса алады, әрі бұл режимді кері қайтару мүмкін емес
Үшінші жайт — ең қауіптісі. Негізгі агентті YOLO режимінде іске қоссаңыз, оның қосалқы агенттері де YOLO режимінде болады, әрі оны өзгерте алмайсыз. Бір сұрау — жүйеңізге кез келген әрекетті жасай алатын 10 параллель агенттің тізбекті іске қосылуына жеткілікті.
Ереже:
| Жағдай | YOLO қолдануға бола ма? |
|---|---|
| Sandbox қалтасында жаңа MCP серверін сынау | ✅ Иә |
| Жасанды деректермен жаңа сұрауды сынау | ✅ Иә |
| Нақты жоба файлдарымен жұмыс істеу | ❌ Жоқ |
| Дерекқорға тиетін кез келген команда | ❌ Ешқашан |
| Өндірістік ортаға орналастыру | ❌ Ешқашан |
| Инфрақұрылымды басқару (AWS, Yandex Cloud) | ❌ Ешқашан |
Балама—дәл рұқсаттар. .claude/settings.json ішінде:
{
"permissions": {
"allow": [
"Bash(git status:*)",
"Bash(git log:*)",
"Bash(npm run build:*)",
"Read(*)",
"Edit(src/**)"
],
"deny": [
"Bash(rm:*)",
"Bash(git push:*)",
"Edit(.env)",
"Edit(prisma/migrations/*)"
]
}
}
Агентке не нәрсеге рұқсат етілгені және тыйым салынғаны көрінеді. Әр жолы «иә» не «жоқ» түймесін басудың қажеті жоқ — агент жылдам жұмыс істейді, ал шекараны сіз басқарасыз.
Келесі қадам: бетбелгіге сақтайтын 7 минуттық тізім
Негізгі түйін
Осы нұсқаулықты дәл қазір бетбелгіге сақтаңыз. Апат болғанда бетті ашып, 10 тармақтан тұратын тізімді ретімен орындаңыз. Бұл сізді 30 минуттық дүрбелеңнен құтқарып, қалпына келтіруге болатын деректерді кездейсоқ басып кетуден сақтайды. Қалпына келтіргеннен кейін келесі аптада апат қайталанбауы үшін 7 алдын алу ережесін баптаңыз.
Тізім: «AI оны жойды — енді не істеймін?»
- Нақты зиянды жазушыны дереу тоқтатып, бала не қашықтағы әрекеттер тоқтағанын растаңыз
- Қайта жүктемеңіз; жойылған файлды ашық ұстайтын қатысы жоқ процестерді сақтаңыз
- Оқиға уақыты мен пәрмен дәлелдерін бөлек тексерілген құрылғыда тіркеңіз
- Аман файлдарды, Git метадеректерін және тиісті сеанс журналдарын сол бөлек құрылғыға көшіріңіз
- Сақталған репозиторий көшірмесінде
git reflog --allқарап, тексерілген коммитті бөлек worktree-ге қалпына келтіріңіз - Git көмектеспесе —
git fsck --lost-found - Дерекқор: PITR (AWS/Yandex/Supabase) немесе ең соңғы снапшот
- Файлдар: Mac жүйесінде Time Machine, Linux жүйесінде lsof
- Соңғы амал: провайдердің қолдау қызметі + S3 нұсқалары
- Қалпына келтірген соң, осы нұсқаулықтағы 7 алдын алу ережесін баптаңыз
Келесі қадам—жүйелі қорғаныс:
- Claude Code ішіндегі Plan Mode—агент жоюға әкелетін операция алдында жоспар құруы үшін
- Claude Code ішіндегі Hooks—қауіпті командаларды бұғаттайтын дайын үлгілер
- Claude Code өзгерістерін қалай кері қайтаруға болады—
/rewind, git және кері қайтарудың 5 стандартты әдісі туралы егжей-тегжейлі нұсқаулық - Claude Code қауіпсіздігін шолу—код қауіпсіздігін жүйелі тексеру
Дереккөздер
- Anthropic Claude Code Hooks құжаттамасы
- Anthropic Claude Code Plan Mode құжаттамасы
- PostgreSQL уақыттың белгілі бір сәтіне қалпына келтіру (PITR) құжаттамасы
- AWS RDS—Дерекқор инстансын уақыттың белгілі бір сәтіне қалпына келтіру
- Yandex Cloud Managed PostgreSQL—Сақтық көшірме және қалпына келтіру
- Git reflog құжаттамасы
- Git fsck—
--lost-foundрежимі
Толығырақ
Жиі қойылатын сұрақтар
Агенттің ағымдағы пәрмені біткенін күту керек пе?
Жоқ. Зиянды жазушыны дереу тоқтатып, оның бала, қашықтағы не дерекқор операциясы тоқтағанын тексеріңіз. Қалпына келетін жойылған файлдарды ұстап тұруы мүмкін қатысы жоқ процестерді сақтаңыз; агенттің өзін тоқтату басқа жазушыны қалдыруы мүмкін.
Қалпына келтіруді git reset --hard арқылы бастауға бола ма?
Алдымен сақталған бақыланатын, бақыланбайтын және еленбейтін файлдарды, Git метадеректерін бөлек құрылғыға сақтаңыз. Көшірілген репозиторийді қарап, тексерілген коммитті бөлек worktree-ге қалпына келтіріңіз; орнында hard reset жасау аман қалған коммиттелмеген түзетулерді жоя алады.