🖥️
Хостинг

Панел терминали тез узилади: сабаблари ва тўғри SSH уланиш

14.11.2026
← Барча мақолалар

Хостинг панелидаги браузер терминали қисқа ишлар учун жуда қулай: файл рухсатини текшириш, кичик архивни очиш ёки битта буйруқни бажариш учун алоҳида дастур ўрнатиш шарт эмас. Лекин узоқроқ ишлаш бошланиши билан муаммо чиқади: бир неча дақиқа ҳаракатсиз қолган ойна ўз-ўзидан ёпилади, катта базани импорт қилиш ўртасида уланиш узилади ва иш нима бўлганини билмай қоласиз. Бу хато эмас, балки браузер терминалининг табиий чеклови. Қуйида узилишларнинг сабабларини ва узоқ ишлар учун тўғри йўлни кўриб чиқамиз.

Браузер терминали қандай ишлайди

Панелдаги терминал аслида сизнинг браузерингиз ва сервер ўртасидаги воситачи. Сиз ёзган ҳар бир белги веб-саҳифа орқали панелга, у ердан сервердаги shell жараёнига узатилади. Бу занжирда бир нечта бўғин бор ва уларнинг ҳар бири ўз вақт чегарасига эга: панел сессияси, веб-сервер ёки прокси, браузернинг ўзи ва сизнинг интернет уланишингиз. Занжирнинг исталган қисми узилса, терминал ёпилади ва унда ишга туширилган буйруқ ҳам одатда тўхтайди.

Узилишнинг асосий сабаблари

Ҳаракатсизлик вақти чегараси

Кўп прокси ва веб-серверлар маълум вақт давомида маълумот алмашинмаган уланишни ёпади. Агар сиз узоқ ишлайдиган буйруқни ишга тушириб, у ҳеч нарса чиқармаса, терминал томонидан қараганда уланиш "жим" бўлиб қолади ва чегарага етгач узилади. Панел сессиясининг ўзи ҳам маълум вақтдан кейин қайта киришни талаб қилиши мумкин.

Браузер ва компьютер

Браузерлар фондаги ёрлиқларни ресурс тежаш учун "ухлатиб" қўяди. Ноутбук қопқоғи ёпилса ёки компьютер уйқу режимига ўтса, уланиш албатта узилади. Саҳифани тасодифан янгилаш ҳам терминал сессиясини йўқотади.

Тармоқ ва NAT

Уй роутери ёки мобил оператор тармоғи узоқ вақт жим турган TCP уланишларини ўз жадвалидан ўчириб юборади. Мобил интернетда IP манзил алмашиниши ёки Wi-Fi'дан мобил тармоққа ўтиш ҳам уланишни узади. Бундай ҳолларда оддий SSH мижозида ҳам client_loop: send disconnect: Broken pipe каби хабар чиқади.

Буйруқ сессия билан бирга ўлади

Энг муҳим нуқта шу: терминал ёпилганда сервер shell жараёнига SIGHUP сигнали юборилади ва ундан ишга туширилган буйруқлар одатда тўхтайди. Яъни уланиш узилиши фақат ноқулайлик эмас — у ярим қолган импорт, чала архивланган папка ёки бузилган миграцияга олиб келиши мумкин.

Ечим 1: ҳақиқий SSH мижози ва keepalive

Узоқ иш учун браузер ўрнига оддий SSH мижозидан фойдаланинг: Linux ва macOS терминали, Windows'да PowerShell ёки Windows Terminal. Уланиш жим қолиб узилмаслиги учун мижоз ҳар бир неча сонияда кичик "тирикман" сигналини юборсин. Буни ~/.ssh/config файлига ёзиб қўйиш қулай:

Host misol
    HostName server.misol.uz
    User user123
    Port 22
    ServerAliveInterval 30
    ServerAliveCountMax 4

Бу ерда ServerAliveInterval 30 ҳар 30 сонияда сигнал юборади, ServerAliveCountMax 4 эса кетма-кет 4 та жавобсиз сигналдан кейин уланишни узилган деб ҳисоблайди. Бир марталик уланиш учун худди шу созламани буйруқ қаторида ҳам бериш мумкин: ssh -o ServerAliveInterval=30 user123@server.misol.uz. PuTTY'да бу Connection бўлимидаги "Seconds between keepalives" майдони орқали созланади.

Ечим 2: tmux ёки screen ичида ишлаш

Keepalive тармоқ жимлигидан ҳимоя қилади, лекин ноутбук уйқуга кетса ёки интернет бутунлай ўчса, уланиш барибир узилади. Бундай ҳолат учун терминал мультиплексори керак. tmux серверда сессия очади ва сиз узилиб қолсангиз ҳам у ишлашда давом этади; қайта уланганингизда худди ўша жойга қайтасиз. Аввал серверда мавжудлигини текширинг, чунки у ҳар бир хостингда ўрнатилмаган бўлиши мумкин:

which tmux screen
tmux new -s import          # yangi sessiya ochish
# ... uzoq buyruqni shu yerda ishga tushiring ...
# Ctrl+B, keyin D — sessiyadan chiqish (buyruq ishlashda davom etadi)
tmux attach -t import       # qayta ulanish

screen ҳам худди шундай ишлайди: screen -S import билан очилади, Ctrl+A кейин D билан ажратилади ва screen -r import билан қайта уланади.

Ечим 3: nohup билан фонда ишга тушириш

Агар tmux ҳам, screen ҳам йўқ бўлса, nohup буйруғи ёрдам беради. У жараённи SIGHUP сигналига бефарқ қилади, охиридаги & эса уни фонга ўтказади. Чиқишни албатта файлга йўналтиринг, кейин уни исталган вақтда ўқийсиз:

nohup sh -c 'gunzip < ~/backup/baza.sql.gz | mysql --defaults-extra-file=$HOME/.my.cnf misol_db' > ~/import.log 2>&1 &
tail -f ~/import.log

База паролини буйруқ қаторига ёзмаслик учун у ~/.my.cnf файлига жойлаштирилади ва файл рухсати chmod 600 билан фақат сизга очиқ қилинади. Иш тугагач, бу файлни ўчириб қўйиш мумкин. Жараён ҳали ишлаётганини ps ux билан текширасиз.

[client]
user=misol_user
password=bu-yerga-baza-paroli

Амалий мисол: интернет-дўкон базасини импорт қилиш

Намангандаги кийим дўкони сайтини бошқа хостингдан кўчираётган дастурчи 1,5 GB ҳажмли SQL дампни панел терминали орқали импорт қилмоқчи бўлди. Импорт бир неча дақиқа жим ишлади, сўнг терминал ёпилди. Қайта кирганда базада жадвалларнинг фақат ярми бор эди, охиргиси эса чала ёзилган эди. Иккинчи уринишда у компьютеридан keepalive созланган SSH билан уланди, tmux сессиясини очди ва импортни ўша ерда бошлади. Йўлда интернет икки марта узилиб қолди, лекин ҳар сафар tmux attach билан қайтганда импорт давом этаётган эди ва охирида хатосиз тугади.

Қайси иш учун қайси восита

ВазифаТавсия
Бир-икки қисқа буйруқПанел терминали етарли
Бир неча дақиқалик интерактив ишSSH мижози + keepalive
Катта импорт, архивлаш, миграцияSSH + tmux ёки screen
tmux йўқ, иш узоқnohup + лог файл

sayt.uz хостингида панелга sayt.uz кабинетидан кирасиз, SSH эса тарифингизда ёқилган бўлса ишлайди. Агар SSH билан уланиш ҳам keepalive созланганига қарамай мунтазам узилса, уланиш вақти ва ssh -v чиқишини техник ёрдамга юборинг, шунда муаммо тармоқдами ёки сервер томонидами аниқлаш осонроқ бўлади.

Ўхшаш мақолалар

🛠️ PHP янгилангач сайт бузилди: тез тиклаш ва сабабини топиш 🐍 aiogram ботни серверга жойлаш: virtualenv, systemd ва webhook 🔀 cPanel'дан ISPmanager'га кўчиш: файллар, база, почта ва DNS 🔍 Хостингда жой эгаллаётган катта файлларни топиш: буйруқлар ва амалий усуллар
🌐 Тил
🇺🇿 O'zbek 🇺🇿 Ўзбек ✓ 🇷🇺 Русский 🇬🇧 English