1. Как мисля за Linux
Преди години, когато за първи път седнах пред терминал, нямах представа, че това ще се превърне в моята работна среда за десетилетия напред. Днес, след стотици инсталации, конфигурации и аварийни интервенции, мога да кажа едно: Linux не е хоби. Това е инструмент, който трябва да работи, когато всичко друго около теб се руши.
В железопътните системи няма място за грешка. Същото важи и за сървърите, които поддържам. Когато казвам, че нещо работи, трябва да е вярно. Linux ми дава тази сигурност, стила да знам какво правя.
2. Файловата система — всичко започва оттам
Много хора гледат на Linux като на черен екран с команди. Аз го виждам като дърво. Всичко е файл. Конфигурациите, устройствата, мрежата, процесите. Ако разбираш файловата система, разбираш половината от системата.
В моята практика най-често работя с /etc за конфигурации, /var/log за логове и /home за потребителите. Когато нещо не работи, първо гледам логовете. Когато трябва да променя нещо, първо си правя резервно копие на конфигурационния файл.
# Винаги правя копие, преди да променя
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# След това редактирам
vim /etc/nginx/nginx.conf
# И накрая проверявам синтаксиса
nginx -t3. Команди, които използвам всеки ден
Няма да губя време с дълги списъци. Ще ти кажа кои са най-честите команди в моята работа, защото те решават 95% от задачите ми.
ls -la— за да видя всичко в дадена директория, включително скритите файлове. Без опции не ми върши работа.cd— скитам се из системата. Това е като да ходя в склада за резервни части – трябва да знам къде се намира всичко.grep— търся в логове и конфигурации.grep -rе безценен, когато трябва да намеря къде е дефиниран даден параметър.systemctl— управлявам услугите.systemctl statusе първото нещо, което пускам, когато нещо не работи.journalctl— гледам системните логове.journalctl -uза конкретна услуга ми спестява часове.du -shиdf -h— проверявам свободното място. Особено важно, когато поддържам сървъри с ограничени ресурси.ps aux— гледам какви процеси вървят. Комбинирам сgrep, за да филтрирам.kill— спирам замръзнал процес. Първо с-15(SIGTERM), после с-9(SIGKILL), ако не помогне.
kill -9 не дава шанс на процеса да запази данни. Използвай го само когато няма друг избор.4. Права и потребители — сигурността започва тук
В моята работа сигурността не е просто парола. Това е контрол на достъпа. В Linux правата на файловете и потребителите определят кой какво може да прави. Ако не разбираш chmod и chown, не можеш да гарантираш сигурността на системата.
# Давам изпълними права на скрипт
chmod +x script.sh
# Променям собственика на файл
chown user:group file.txt
# Свалям всички права, освен за собственика
chmod 700 sensitive_fileВ железопътните системи имаме строги процедури за достъп. Същото прилагам и към сървърите. Никой не трябва да има повече права, отколкото му е необходимо.
5. Мрежа — свързаност, която трябва да работи
Ако сървърът няма мрежа, той е безполезен. Проверката на мрежовата свързаност е сред първите ми стъпки при диагностика.
# Проверявам дали имам връзка
ping -c 4 8.8.8.8
# Гледам конфигурацията на мрежовия интерфейс
ip addr show
# Проверявам дали слушам на правилния порт
ss -tulpnКомандата ss -tulpn ми показва кои процеси слушат на кои портове. Това е особено полезно, когато се опитвам да разбера защо дадена услуга не е достъпна.
6. Пакети — инсталиране и поддръжка
В зависимост от дистрибуцията, използвам apt за Debian/Ubuntu или dnf/yum за RHEL системи. За предпочитане използвам Debian, защото ми е познат и стабилен.
# Обновявам списъка с пакети
apt update
# Инсталирам пакет
apt install nginx
# Търся пакет
apt search postgresqlapt remove може да изтрие зависимости, които са важни за други приложения.7. Логове — твоят най-добър приятел
Когато нещо се обърка, логовете са моят компас. Те винаги казват истината, стига да знаеш как да ги прочетеш. В моята практика /var/log е свещена територия.
# Логове на системата
journalctl -xe
# Логове на конкретна услуга
journalctl -u nginx -f
# Търся в логовете за грешки
grep -i error /var/log/syslogjournalctl -f ми позволява да следя логовете в реално време, което е безценно при отстраняване на проблеми, докато те се случват.
8. Автоматизация — спестява време и грешки
Ръчното изпълнение на повтарящи се задачи е рецепта за грешки. Затова пиша скриптове. Те ми спестяват време и гарантират, че всяка стъпка се изпълнява еднакво всеки път.
#!/bin/bash
# Бекъп на критични директории
BACKUP_DIR="/backup/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/etc.tar.gz" /etc
tar -czf "$BACKUP_DIR/var_log.tar.gz" /var/log
echo "Бекъпът е готов в $BACKUP_DIR"Слагам такива скриптове в cron, за да се изпълняват автоматично, без да се налага да ги помня.
9. Когато нещо се счупи — моят план за действие
Авариите не се случват, когато имаш време. Затова имам план. Когато нещо спре да работи, следвам едни и същи стъпки, за да не се паникьосам и да не пропусна нещо важно.
- Спокойно. Паниката не помага.
- Проверявам дали услугата работи.
systemctl status. - Гледам логовете.
journalctl -u. - Проверявам мрежата.
ping,ss. - Проверявам свободното място.
df -h. - Проверявам натоварването.
topилиhtop. - Ако нищо не помага, рестартирам услугата.
systemctl restart.
10. Съвети от практиката
- Документирай всичко. Записвам какво съм направил и защо. След месец няма да си спомням, а документът ще ми помогне.
- Използвай
history. Винаги мога да видя кои команди съм изпълнявал и да ги повторя. - Не бъди суперпотребител без нужда. Работя като обикновен потребител и използвам
sudoсамо когато е необходимо. - Прави редовни бекъпи. Дори и най-стабилната система може да се счупи.
- Тествай промените в тестова среда. Никога не променям продукционен сървър директно, без преди това да съм пробал в среда, която не е критична.
Заключение
Linux не е труден, но изисква дисциплина и разбиране. Не е достатъчно да знаеш командите – трябва да разбираш какво се случва зад тях. Това е като железопътната спирачка: можеш да натиснеш педала, но ако не знаеш как работи системата, няма да разбереш защо влакът не спира.
В тази статия споделих основите, които използвам всеки ден. Те не са теория от учебник – те са неща, които са ме спасявали в реални ситуации. В следващите части ще навлезем по-дълбоко в конкретни теми като управление на процеси, мрежови конфигурации и сигурност.
Запомни: добрият администратор не е този, който знае всичко, а този, който знае как да намери отговора, когато нещо се обърка.