Skip to content

Linux

SSH, systemd, disks, logs, packages, and the load average.

  1. SSH first login and keysSSH first login and keysSSH first login on a new VPS means matching the host fingerprint, installing your public key, and proving a second key-based session before you disable passwords.Updated Aug 29, 2026
  2. Users, groups, and sudoUsers, groups, and sudoCreate a named user on your VPS, add it to the sudo group, and avoid living as root. Scope deploy accounts tightly so a leaked CI token cannot…Updated Aug 29, 2026
  3. systemd: start, stop, journalctlsystemd: start, stop, journalctlUse systemctl to start, stop, and enable services, and journalctl to read a unit’s recent log. Status plus the last journal lines usually name the real failure before…Updated Aug 29, 2026
  4. Disk: df, du, and inodesDisk: df, du, and inodesdf -h shows free bytes; df -i shows free inodes. A disk can look partly empty in size and still refuse writes when tiny files have used every…Updated Aug 29, 2026
  5. Logs and logrotateLogs and logrotateLogrotate trims growing log files on a schedule so disks stay usable. Learn how stanzas, journald caps, and cPanel log locations work together without filling the volume.Updated Aug 29, 2026
  6. Package updates: apt and dnfPackage updates: apt and dnfUse security-only unattended updates on a VPS, hold MariaDB and similar packages for a planned window, and reboot after kernel mail. Shared nodes are patched by us; you…Updated Aug 29, 2026
  7. Cron vs systemd timersCron vs systemd timersCron uses crontab lines; systemd timers use unit calendar events. Pick one scheduler per job on your VPS so the same task never runs twice.Updated Aug 29, 2026
  8. ufw and firewalldufw and firewalldufw and firewalld manage the Linux firewall on a VPS or dedicated server. Allow SSH on 22 for IPv4 and IPv6 before you enable, then add 80, 443,…Updated Aug 29, 2026
  9. Load average and topLoad average and topLoad average counts runnable tasks and D-state waits, not CPU percent. Use uptime, vmstat, and top first so you can tell disk wait from real compute before you…Updated Aug 29, 2026
  10. Time, NTP, and TLSTime, NTP, and TLSWrong clocks break TLS, logs, and TOTP. Use timedatectl to confirm NTP is synchronized so certificates and codes keep working on your VPS.Updated Aug 29, 2026
  11. journalctl -u until you love itjournalctl -u until you love itUse journalctl -u with a unit name and a time window to read one service log cleanly. Add -p err, -b, or -b -1 when you need errors…Updated Aug 29, 2026
  12. sshd_config safe defaultssshd_config safe defaultsOnce SSH keys work, set safe sshd_config defaults such as PasswordAuthentication no and a careful PermitRootLogin value. Always run sshd -t before you reload so a typo cannot…Updated Aug 29, 2026
  13. A failed systemd unitA failed systemd unitList failed systemd units, read status and the journal, fix the path or port, then reset-failed and start. A single failed unit rarely means the whole server is…Updated Aug 29, 2026
  14. Inode exhaustionInode exhaustionInode exhaustion means every file name slot is used while disk space may still be free. Use df -i, count files in suspect folders, and remove sessions, caches,…Updated Aug 29, 2026
  15. When /tmp fills upWhen /tmp fills upA full /tmp breaks MySQL sorts, package installs, and services with odd temp-file errors. Check df /tmp, find the writer, and keep the sticky bit at 1777.Updated Aug 29, 2026
  16. dmesg and the OOM killerdmesg and the OOM killerThe OOM killer ends a process when RAM runs out. Use dmesg to see the victim, then fix worker counts, database size, backup overlap, or add memory.Updated Aug 29, 2026
  17. Timezone and cron, a quiet footgunTimezone and cron, a quiet footgunCron follows the system timezone unless CRON_TZ overrides it. Keep the server on UTC, set WordPress for display, and align PHP so midnight jobs do not hit peak…Updated Aug 29, 2026
  18. ulimit and nfileulimit and nfileToo many open files usually means a low nofile limit. Shell ulimit only affects your session; set LimitNOFILE on the systemd unit so nginx or php-fpm actually pick…Updated Aug 29, 2026
  19. SELinux vs AppArmor, without folkloreSELinux vs AppArmor, without folkloreSELinux and AppArmor are mandatory access controls that can deny writes normal permissions allow. Identify which one your VPS runs, read the denial, and keep enforcing.Updated Aug 29, 2026
  20. Why load is not CPUWhy load is not CPULoad average counts the run queue and uninterruptible sleep, often disk wait. It is not CPU percent. Use vmstat to separate user time, iowait, steal, and memory pressure…Updated Aug 29, 2026