Інструкції та туторіали по хостингу Практика

Cron, SSH і логи: три інструменти хостингу, якими ви не користуєтесь, а мали б

Задоволений керівник компанії успішно використовує інструкції хостинг для бізнесу

У вас на хостингу лежить сайт. Він працює. Сторінки відкриваються, контактна форма надсилає листи, SSL-сертифікат горить зеленим замочком. І ви думаєте: "Все, налаштовано". А тепер уявіть, що ви купили автомобіль - і їздите лише на першій передачі. Технічно - рухаєтесь. Практично - втрачаєте 80% того, що машина здатна дати. Саме так виглядає хостинг, на якому ви не використовуєте cron-задачі, SSH-доступ і аналіз логів. Ці три інструменти вже є у вашій панелі керування. Вони безкоштовні. Вони потужні. І сьогодні ми розберемо кожен з них так, щоб через 20 хвилин ви могли їх увімкнути.

Cron-задачі: ваш невидимий асистент, який ніколи не спить

Cron - це планувальник завдань на сервері. Уявіть собі будильник, який не просто дзвонить, а робить щось корисне: очищує кеш, відправляє звіти, оновлює базу даних, генерує XML-карту сайту. Все це - без вашої участі, за розкладом, який ви задаєте один раз.

Як це працює? Ви вказуєте команду і частоту виконання. Сервер слухається. Без відмовок, без забутих дедлайнів.

Ось кілька прикладних сценаріїв, де cron рятує нерви і час:

  • Автоматичний бекап бази - mysqldump щоночі о 03:00, коли трафік мінімальний
  • Очищення тимчасових файлів - папка /tmp росте як снігова куля, якщо її не чистити
  • Генерація sitemap.xml - пошукові боти отримують свіжу карту без вашого ручного натискання кнопки
  • Розсилка digest-листів - PHP-скрипт запускається щоп'ятниці о 10:00
  • Перевірка доступності сайту - curl-запит кожні 5 хвилин із записом результату у файл

У cPanel шлях простий: Advanced → Cron Jobs. У Plesk: Tools & Settings → Scheduled Tasks. Синтаксис cron складається з п'яти полів - хвилина, година, день місяця, місяць, день тижня - і самої команди. Наприклад:

0 3 * * * /usr/bin/php /home/user/public_html/backup.php

Це означає: "Щодня о третій ночі запусти backup.php". Просто? Просто. А тепер порахуйте, скільки годин на рік ви витрачаєте на ручні дії, які cron міг би робити за вас. Я колись порахував для одного клієнта - вийшло 87 годин. Майже 11 робочих днів.

Чоловік з ноутбуком налаштовує ssh доступ хостинг віддалено
Чоловік з ноутбуком налаштовує ssh доступ хостинг віддалено

SSH: командний рядок - це не страшно, це швидко

SSH (Secure Shell) - це спосіб зайти на сервер напряму, через термінал, і керувати ним текстовими командами. Звучить як щось із фільму про хакерів? Насправді це найпрактичніший інструмент, який економить від 5 до 50 хвилин на кожній операції порівняно з файловим менеджером.

Головна перевага SSH - швидкість. Завантажити архів у 500 МБ через файловий менеджер панелі - це 15-20 хвилин очікування і молитви, щоб з'єднання не обірвалось. Через SSH - це одна команда wget і 30 секунд.

Ось базові команди, які вам знадобляться в перший же день:

  1. ls -la - побачити всі файли в директорії, включно з прихованими (.htaccess, .env)
  2. cd /home/user/public_html - перейти в потрібну папку
  3. wget https://example.com/archive.zip - завантажити файл прямо на сервер
  4. unzip archive.zip - розпакувати архів (міграція за секунди замість хвилин)
  5. find . -name "*.log" -size +100M - знайти лог-файли, що з'їли місце на диску
  6. tail -f /var/log/apache2/error.log - дивитись помилки сервера в реальному часі
  7. chmod 644 wp-config.php - виставити правильні права на файл

Щоб підключитись, вам потрібен SSH-клієнт. На Windows - це PuTTY або вбудований термінал Windows 10/11. На macOS і Linux - просто відкрийте Terminal і введіть:

ssh username@your-server-ip -p 22

Порт 22 - стандартний. Деякі хостери змінюють його на 2222 або інший для безпеки. Ця інформація завжди є в листі, який ви отримали при покупці хостингу. Не видаляйте його. Серйозно.

"Якщо ви адмініструєте сервер тільки через веб-панель, ви бачите лише те, що панель вирішила вам показати. SSH дає повну картину" - Даніель Штенберг, творець curl і один із найвпливовіших розробників open-source інструментів.

Домашній офіс з моніторами для аналізу логів сервера для початківців
Домашній офіс з моніторами для аналізу логів сервера для початківців

Логи сервера: детективна історія кожного запиту до вашого сайту

Логи - це щоденник вашого сервера. Кожен запит, кожна помилка, кожна спроба входу - все записується. Це як камери спостереження в магазині: ви не дивитесь їх щодня, але коли щось трапляється - вони рятують ситуацію.

На типовому хостингу з Apache ви знайдете два головних лог-файли:

Файл Що записує Коли дивитись Де знайти (cPanel)
access.log Кожен запит: IP, URL, статус-код, user-agent Аналіз трафіку, виявлення ботів Metrics → Raw Access
error.log PHP-помилки, збої модулів, 500-ки Коли сайт "лягає" або працює дивно Metrics → Errors
mail.log Відправлені і відхилені листи Листи не доходять до клієнтів Email → Track Delivery
auth.log / secure Спроби входу SSH, FTP, панель Підозра на злам або брутфорс Через SSH: /var/log/

Як читати access.log? Ось типовий рядок:

192.168.1.1 - - [15/Jan/2025:10:23:45 +0200] "GET /contact/ HTTP/1.1" 200 4523

Розшифровка: IP 192.168.1.1 запросив сторінку /contact/, сервер відповів кодом 200 (все ок) і віддав 4523 байти. Якщо замість 200 ви бачите 404 - сторінку не знайдено. 500 - внутрішня помилка. 403 - доступ заборонено.

Практична порада: раз на тиждень переглядайте error.log. Якщо PHP Warning повторюється тисячі разів - це не просто попередження, це навантаження на процесор, яке сповільнює ваш сайт. Я бачив випадок, коли один deprecated-виклик у плагіні WordPress генерував 14 000 записів у лог за добу. Сайт гальмував, власник грішив на хостера. А проблема вирішилась оновленням одного плагіна.

Три інструменти разом: сценарій реального використання

Давайте з'єднаємо все в одну робочу схему. Уявіть: у вас інтернет-магазин на WooCommerce. Ось що ви можете налаштувати за один вечір.

  1. SSH: підключаєтесь до сервера, встановлюєте WP-CLI (командний інтерфейс WordPress). Тепер оновлення плагінів - це одна команда: wp plugin update --all
  2. Cron: створюєте задачу, яка щоночі о 02:00 запускає wp db export /home/user/backups/db-$(date +%F).sql - бекап бази з датою у назві файлу
  3. Cron #2: другая задача о 02:30 видаляє бекапи старіші за 14 днів: find /home/user/backups/ -mtime +14 -delete
  4. Логи: налаштовуєте простий bash-скрипт, який парсить error.log і надсилає вам email, якщо кількість 500-х помилок перевищує 10 за годину
  5. SSH: перевіряєте розмір папки uploads командою du -sh wp-content/uploads/ - раптом хтось заливає некомпресовані фото по 15 МБ

Весь цей процес - години рутини, згорнуті до кількох хвилин. І ніяких платних плагінів, ніяких сторонніх сервісів. Тільки те, що вже є на вашому сервері.

Віддалений офіс із сервером для налаштування cron задачі сервер
Віддалений офіс із сервером для налаштування cron задачі сервер

Помилки, які роблять навіть досвідчені адміни

Я зібрав типові граблі, на які люди наступають регулярно. Збережіть собі цей список - він коштує дорожче, ніж здається.

  • Cron без перенаправлення виводу - якщо не додати >/dev/null 2>&1 наприкінці команди, сервер буде надсилати email з результатом кожного запуску. 1440 листів на день при хвилинному інтервалі. Ваша поштова скринька "подякує"
  • SSH-ключ без пароля - зручно, але якщо хтось отримає ваш приватний ключ, він має повний доступ. Завжди ставте passphrase
  • Ігнорування ротації логів - access.log на популярному сайті росте на 50-100 МБ щомісяця. Через рік він з'їсть 1 ГБ місця. Переконайтесь, що logrotate налаштовано
  • Запуск cron від root - якщо ваш хостинг дає root-доступ (VPS/dedicated), ніколи не запускайте веб-скрипти від root. Створіть окремого користувача

Чеклист: що зробити прямо зараз

Не відкладайте. Відкрийте другу вкладку з панеллю хостингу і пройдіться по цьому списку:

  1. Перевірте, чи увімкнений SSH-доступ у вашому тарифі. На shared-хостингу він буває заблокований - напишіть у підтримку
  2. Створіть першу cron-задачу: нехай це буде простий бекап бази раз на день
  3. Зайдіть у error.log і прочитайте останні 50 рядків. Якщо бачите повторювані помилки - гугліть кожну. Серйозно, це часто вирішується за 5 хвилин
  4. Встановіть SSH-ключ замість пароля. Інструкція для PuTTY - 4 хвилини, для macOS Terminal - 2 хвилини
  5. Налаштуйте другу cron-задачу: видалення старих бекапів, щоб не забити диск

Кожен із цих кроків займе від 3 до 10 хвилин. Разом - менше години. А ефект ви відчуєте наступного ж дня, коли зранку у вас вже буде свіжий бекап, чистий диск і розуміння того, що відбувається на вашому сервері.

Хостинг - це не просто місце, де лежить ваш сайт. Це робочий інструмент. І як будь-який інструмент, він працює на повну лише тоді, коли ви знаєте, де які кнопки натискати. Питання просте: ви досі їдете на першій передачі?