4System Maintenance and Operations
- 4.1Building and Installing from Source with make
Learn the full workflow for building software from source instead of relying on package managers: fetching source with git clone, git tag -l, and git checkout; extracting with gzip/gunzip/bzip2/xz/tar/unzip; applying diffs with patch; detecting the environment with configure; and building/installing with make and make install.
- 4.2Backup and Restore
Learn backup fundamentals (full, differential, and incremental), representative backup software (Amanda, Bacula, Bareos, BackupPC), media (tape, HDD, optical), and the commands used to perform backups (dd, tar, mt, rsync).
- 4.3Notifying Users
Learn how to communicate system maintenance status to users: pre-login messages via /etc/issue and /etc/issue.net, the post-login /etc/motd, immediate broadcast to all logged-in users with wall, the shutdown-warning behavior of shutdown, and combining notification with service control via systemctl.
- 4.4Monitoring Resource Usage
Learn the tools for monitoring CPU, memory, disk I/O, and network I/O: CPU with top, htop, ps, and sar; memory with vmstat, free, and sar; disk with iostat, iotop, and sar; network with netstat, iftop, ss, and sar. Also covers lsof for open files and iptraf for network traffic.
- 4.5Availability Monitoring, Resource Monitoring, and Operations Tools
Learn the concepts behind detecting resource exhaustion, overload, and abnormal termination early: the behavior of the OOM killer, remote monitoring via SNMP, designing thresholds and alerts, and representative monitoring tools (Icinga2, Nagios, collectd, MRTG, Cacti, Zabbix).
- 4.6System Configuration Tools (Ansible)
Learn the value automation brings—standardization, efficiency, scalability, and idempotency—along with the core concepts of Ansible (inventory, modules, Playbooks, YAML), the ansible and ansible-playbook commands, and typical use cases (provisioning VMs/containers, application releases, and network device configuration changes).

