Ringkasan
Mengelola Linux server tidak harus dimulai dari hafalan puluhan command. Mulailah dari navigasi, membaca kondisi server, mengelola file, lalu naik ke proses, jaringan, service, dan troubleshooting. Di produksi, command sederhana seperti df -h, journalctl, dan ss justru sering lebih berguna daripada command yang terlalu eksotis.
Contoh di bawah cocok untuk Ubuntu, Debian, Rocky Linux, AlmaLinux, dan sebagian besar distribusi server modern. Jalankan command berisiko dengan hati-hati, terutama saat memakai sudo atau bekerja di direktori sistem.
Prasyarat
-
Akses ke server melalui SSH atau terminal lokal.
-
User yang memiliki akses
sudobila perlu mengelola service atau paket. -
Pemahaman dasar bahwa Linux membedakan huruf besar dan kecil.
-
Sebaiknya latihan dulu di VM atau server development, bukan langsung di server produksi.
Langkah-langkah
1. Masuk ke server dan kenali identitas sistem
-
Login melalui SSH.
ssh user@alamat-ip-serverJika memakai port SSH selain default, tambahkan opsi
-p.ssh -p 2222 user@alamat-ip-server -
Periksa user aktif dan lokasi direktori saat ini.
whoami pwdwhoamiberguna untuk memastikan Anda tidak sedang bekerja sebagairoottanpa sengaja. Kebiasaan kecil ini menghindarkan banyak insiden yang sebenarnya sepele. -
Lihat informasi sistem operasi dan kernel.
cat /etc/os-release uname -a hostnamectlSaat menerima tiket masalah, saya biasanya mulai dari tiga command ini. Versi OS dan hostname sering menentukan langkah troubleshooting berikutnya.
2. Navigasi direktori dan membaca isi file
-
Tampilkan isi direktori.
ls ls -lahOpsi
-lmenampilkan detail,-amenyertakan file tersembunyi, dan-hmembuat ukuran file lebih mudah dibaca manusia. -
Berpindah direktori.
cd /var/log cd .. cd ~~mengarah ke home directory user aktif. Hindari asumsi bahwa Anda selalu berada di/root; pada server yang dikelola tim, asumsi seperti itu mudah membuat command salah sasaran. -
Baca file teks.
cat /etc/hosts less /var/log/syslog head -n 20 /etc/passwd tail -n 50 /var/log/auth.logUntuk log besar, gunakan
lessatautail, bukancat. Membuka log berukuran gigabyte dengancathanya membuat terminal tidak nyaman dan tidak memberi nilai tambah. -
Pantau log yang terus bertambah.
tail -f /var/log/nginx/access.logTekan
Ctrl+Cuntuk berhenti. Ini praktis saat menguji deploy, request API, atau perubahan konfigurasi reverse proxy.
3. Mengelola file dan direktori dengan aman
-
Buat direktori dan file.
mkdir proyek mkdir -p proyek/logs/aplikasi touch proyek/README.mdGunakan
mkdir -pjika struktur folder bertingkat. Command ini tidak gagal hanya karena parent directory belum ada. -
Salin, pindahkan, dan ubah nama file.
cp konfigurasi.conf konfigurasi.conf.bak mv aplikasi-v1 aplikasi-v2Sebelum mengubah file konfigurasi, buat backup sederhana dengan ekstensi
.bak. Tidak mewah, tetapi sangat membantu ketika perubahan kecil ternyata memutus service. -
Hapus file atau direktori.
rm file-lama.txt rm -r direktori-lamaJangan biasakan memakai
rm -rftanpa memastikan path terlebih dahulu. Jalankanpwddanlssebelum menghapus direktori, terutama bila bekerja dengansudo. -
Cari file berdasarkan nama.
find /var/log -name "*.log" find /home -type f -mtime -7Contoh kedua mencari file yang dimodifikasi dalam tujuh hari terakhir. Ini sering dipakai saat melacak artefak deploy atau file upload yang bermasalah.
4. Memahami permission dan ownership
-
Lihat permission file.
ls -lContoh output
-rw-r-----berarti pemilik dapat membaca dan menulis, grup dapat membaca, sementara user lain tidak memiliki akses. -
Ubah permission.
chmod 640 aplikasi.conf chmod 755 /var/www/htmlPermission
777hampir tidak pernah menjadi solusi yang benar di server. Jika aplikasi gagal menulis file, periksa ownership, grup, dan konteks service terlebih dahulu. -
Ubah pemilik file.
sudo chown nginx:nginx /var/www/html/uploads sudo chown -R www-data:www-data /var/www/htmlNama user service berbeda antar distro. Ubuntu sering memakai
www-data, sedangkan beberapa instalasi Nginx memakainginx.
5. Memantau resource server
-
Cek kapasitas disk.
df -h du -sh /var/log du -sh
-
`df -h` menunjukkan penggunaan filesystem, sedangkan `du` membantu menemukan direktori yang memakan ruang. Jika disk penuh, jangan langsung menghapus log; cari sumber pertumbuhannya dulu.
-
Cek penggunaan memori dan CPU.
free -h uptime topuptimemenampilkan load average. Angka load tidak bisa dinilai sendirian; bandingkan dengan jumlah core melaluinproc. -
Gunakan
htopbila tersedia.htophtoplebih nyaman untuk melihat proses dan melakukan sorting. Namun,toptetap penting karena hampir selalu tersedia pada instalasi minimal. -
Lihat proses yang paling berat.
ps aux --sort=-%cpu | head ps aux --sort=-%mem | headHasil ini berguna saat server mendadak lambat. Catat PID dan command proses sebelum mengambil tindakan apa pun.
6. Mengelola proses dan service
-
Cari proses.
pgrep -a nginx ps aux | grep nginxpgrep -abiasanya lebih bersih daripada polagrep, karena tidak ikut menampilkan prosesgrepitu sendiri. -
Hentikan proses dengan terukur.
kill PID kill -9 PIDGunakan
killbiasa terlebih dahulu agar aplikasi punya kesempatan menutup koneksi dan menulis data.kill -9adalah pilihan terakhir karena proses tidak dapat melakukan cleanup. -
Periksa status service systemd.
sudo systemctl status nginx sudo systemctl status ssh -
Jalankan, hentikan, restart, dan aktifkan service saat boot.
sudo systemctl restart nginx sudo systemctl reload nginx sudo systemctl enable nginxUntuk perubahan konfigurasi web server,
reloadsering lebih aman daripadarestartkarena koneksi aktif tidak selalu terputus. Tetap validasi konfigurasi sebelum reload. -
Baca log service.
sudo journalctl -u nginx -n 100 sudo journalctl -u nginx -fIni salah satu jalur tercepat ketika service gagal start. Pesan error biasanya jauh lebih jelas daripada menebak-nebak dari status merah di
systemctl.
7. Dasar jaringan dan koneksi
-
Lihat alamat IP dan interface.
ip addr ip route -
Uji konektivitas dan DNS.
ping -c 4 8.8.8.8 ping -c 4 google.com getent hosts google.comJika IP dapat diping tetapi domain gagal di-resolve, masalahnya kemungkinan ada di DNS, bukan koneksi internet secara umum.
-
Periksa port yang sedang listening.
sudo ss -tulpn sudo ss -ltnpCommand ini penting saat aplikasi tidak dapat diakses. Pastikan proses benar-benar mendengarkan pada port yang diharapkan dan bukan hanya berjalan di background.
-
Uji HTTP dari server.
curl -I http://127.0.0.1 curl -v https://contoh-domain.comcurl -vmenampilkan detail koneksi, TLS, header, dan respons. Sangat berguna untuk membedakan masalah aplikasi, reverse proxy, DNS, atau sertifikat.
8. Mengelola paket software
-
Untuk Ubuntu dan Debian, gunakan APT.
sudo apt update sudo apt upgrade sudo apt install curl sudo apt remove nama-paket -
Untuk Rocky Linux, AlmaLinux, atau RHEL, gunakan DNF.
sudo dnf check-update sudo dnf upgrade sudo dnf install curl sudo dnf remove nama-paketJangan menjalankan upgrade besar di jam trafik tinggi tanpa melihat changelog dan rencana rollback. Update keamanan penting, tetapi cara menjalankannya tetap perlu disiplin operasional.
9. Menggunakan pipe, redirect, dan pencarian log
-
Filter output dengan
grep.grep -i "error" /var/log/syslog grep -R "DATABASE_URL" /etc 2>/dev/null -
Gabungkan command dengan pipe.
journalctl -u nginx | grep -i error ps aux | grep php-fpm -
Simpan output ke file.
df -h > laporan-disk.txt date >> aktivitas.txt>menimpa isi file, sedangkan>>menambahkan baris di akhir file. Kesalahan memakai redirect pada file konfigurasi bisa fatal, jadi baca command sekali lagi sebelum menekan Enter. -
Gunakan
awkdansortuntuk analisis ringan.awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | headContoh ini menghitung alamat IP yang paling sering muncul di access log Nginx. Cocok untuk investigasi awal lonjakan trafik atau bot yang terlalu agresif.
10. Administrasi advanced yang sering dipakai
-
Jadwalkan pekerjaan dengan cron.
crontab -eContoh menjalankan backup setiap hari pukul 02:00:
0 2
-
- /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Pastikan script menggunakan path absolut. Cron memiliki environment yang lebih minim dibanding shell interaktif.
-
Jalankan pekerjaan panjang dengan
tmux.tmux new -s deploy tmux attach -t deploySaat koneksi SSH putus, proses di dalam sesi
tmuxtetap berjalan. Ini lebih aman untuk migrasi data, restore backup, atau deploy yang memakan waktu. -
Cek koneksi aktif dan masalah socket.
ss -tan state established ss -s -
Cari error kernel atau indikasi kehabisan memori.
dmesg -T | tail -n 50 journalctl -k -n 100Jika proses mati tanpa alasan jelas, cari kata seperti
OOM,killed process, atauout of memory. Banyak kasus aplikasi terlihat crash, padahal kernel menghentikannya karena memori habis. -
Cek penggunaan inode.
df -iDisk bisa tampak masih lega tetapi tidak dapat membuat file baru karena inode habis. Ini sering terjadi pada aplikasi yang menghasilkan jutaan file kecil, cache, atau session file.
Tips Praktis
-
Biasakan menjalankan
pwd,whoami, danls -lahsebelum perubahan penting. -
Gunakan
sudohanya pada command yang memerlukannya; jangan login sebagairootuntuk pekerjaan harian. -
Validasi konfigurasi sebelum reload service, misalnya
sudo nginx -tuntuk Nginx. -
Simpan output investigasi penting ke file agar mudah dibandingkan atau dibagikan ke tim.
-
Untuk server produksi, catat waktu perubahan, command utama, dan hasilnya. Dokumentasi kecil seperti ini sangat membantu saat insiden.
-
Jangan menyalin command dari internet secara mentah, terutama yang mengandung
rm,curl | bash, perubahan firewall, atau modifikasi permission rekursif.
Penutup
Kemampuan mengelola Linux server terbentuk dari pola kerja, bukan sekadar hafalan command. Kuasai command dasar sampai benar-benar nyaman, lalu gunakan log, status service, dan metrik resource sebagai dasar keputusan. Di lapangan, pendekatan yang tenang dan terukur biasanya menyelesaikan masalah lebih cepat daripada menjalankan banyak command secara acak.