15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
02.09.2025

Cara Menjalankan File .sh di Linux: Panduan Lengkap untuk Pemula dan Sysadmin

Shell script adalah tulang punggung otomasi Linux. Baik Anda menyebarkan aplikasi web, menjadwalkan backup, atau mengonfigurasi server yang baru disediakan, file .sh memungkinkan Anda menggabungkan urutan perintah kompleks menjadi satu executable yang dapat diulang. Panduan ini membimbing Anda melalui setiap metode untuk menjalankan shell script di Linux — dari eksekusi dasar hingga proses latar belakang dan penjadwalan cron — dengan praktik terbaik yang berlaku di lingkungan produksi.

Apa Itu File .sh di Linux?

File .sh adalah script teks biasa yang ditulis dalam bahasa shell (biasanya Bash atau POSIX sh) yang diinterpretasi dan dieksekusi oleh shell Linux baris demi baris. Shell script digunakan untuk:

  • Mengotomatisasi tugas administrasi sistem yang berulang
  • Menyebarkan dan mengonfigurasi aplikasi
  • Mengelola pengguna, izin, dan sistem file
  • Menjadwalkan pekerjaan pemeliharaan seperti backup dan rotasi log
  • Bootstrap server baru setelah penyediaan

Jika Anda mengelola lingkungan VPS Hosting atau Dedicated Server, shell scripting adalah keterampilan yang sangat diperlukan yang akan menghemat Anda berjam-jam pekerjaan manual setiap minggu.

Prasyarat

Sebelum menjalankan file .sh apa pun, pastikan Anda memiliki:

  • Akses ke terminal Linux (lokal atau melalui SSH)
  • Akun pengguna dengan izin yang sesuai
  • File script sudah ada di sistem (dibuat secara lokal atau ditransfer melalui SCP/SFTP)

Metode 1: Buat File Dapat Dieksekusi dengan chmod

Secara default, file .sh yang baru dibuat atau diunduh tidak memiliki izin eksekusi. Sebelum menjalankan script sebagai program, Anda harus secara eksplisit memberikan hak eksekusi menggunakan perintah chmod.

chmod +x script.sh

Untuk memverifikasi bahwa izin diterapkan dengan benar:

ls -l script.sh

Anda harus melihat output serupa dengan:

-rwxr-xr-x 1 user user 1024 Jun 10 14:32 script.sh

Flag x mengkonfirmasi bahwa file sekarang dapat dieksekusi oleh pemilik, grup, dan orang lain.

> Tips keamanan: Jika Anda ingin membatasi eksekusi hanya ke pemilik file, gunakan chmod 700 script.sh daripada chmod +x.

Metode 2: Jalankan Script Menggunakan Path Relatif atau Absolut

Setelah file dapat dieksekusi, Anda dapat menjalankannya langsung dari terminal.

Menggunakan Path Relatif (Direktori Saat Ini)

Jika script berada di direktori kerja saat ini, awali dengan ./:

./script.sh

./ memberi tahu shell untuk mencari di direktori saat ini daripada mencari di $PATH sistem.

Menggunakan Path Absolut

Jika script disimpan di lokasi lain, berikan path lengkapnya:

/home/user/scripts/script.sh

atau

/usr/local/bin/script.sh

Menggunakan path absolut sangat penting saat menjalankan script dari pekerjaan cron atau konteks otomatis lainnya di mana direktori kerja mungkin berbeda.

Metode 3: Jalankan Script dengan bash atau sh (Izin Eksekusi Tidak Diperlukan)

Anda dapat memanggil shell script dengan secara eksplisit memanggil interpreter, bahkan jika file tidak memiliki izin eksekusi. Ini sangat berguna untuk dengan cepat menguji script sebelum membuatnya secara permanen dapat dieksekusi.

bash script.sh

atau, untuk script yang sesuai dengan POSIX:

sh script.sh

Perbedaan Antara bash dan sh

PerintahInterpreterMendukung Fitur Spesifik Bash
bash script.shGNU BashYa
sh script.shPOSIX sh (sering dash di Ubuntu)Tidak

Jika script Anda menggunakan sintaks spesifik Bash seperti array, kondisional [[ ]], atau substitusi proses, selalu gunakan bash daripada sh.

Metode 4: Jalankan Script sebagai Superuser (sudo)

Beberapa script memerlukan privilege tingkat root untuk memodifikasi file sistem, mengelola layanan, menginstal paket, atau mengubah konfigurasi jaringan. Gunakan sudo untuk meningkatkan izin:

sudo ./script.sh

atau teruskan script langsung ke bash dengan hak yang ditingkatkan:

sudo bash script.sh

Pertimbangan Keamanan Penting

  • Jangan pernah menjalankan script sebagai root tanpa membacanya terlebih dahulu. Script yang berbahaya atau ditulis dengan buruk dengan akses sudo dapat menyebabkan kerusakan sistem yang tidak dapat diperbaiki.
  • Lebih suka menjalankan script dengan privilege minimum yang diperlukan.
  • Jika script hanya perlu menulis ke direktori tertentu, pertimbangkan untuk menyesuaikan izin direktori daripada menjalankan seluruh script sebagai root.

Metode 5: Jalankan Script di Latar Belakang

Secara default, menjalankan script di terminal memblokir sesi Anda hingga script selesai. Untuk tugas yang berjalan lama — seperti transfer file besar, migrasi database, atau pembangunan server — Anda akan ingin mengirim proses ke latar belakang.

Menggunakan Operator &

./script.sh &

Simbol & memisahkan proses ke latar belakang dan segera mengembalikan kontrol ke terminal Anda. Shell mencetak PID (Process ID) pekerjaan latar belakang, yang dapat Anda gunakan untuk memantau atau menghentikannya nanti.

Jaga Script Tetap Berjalan Setelah Logout dengan nohup

Jika Anda memutuskan SSH, pekerjaan latar belakang yang diluncurkan dengan & biasanya akan dihentikan. Gunakan nohup untuk mencegah hal ini:

nohup ./script.sh &

Output dialihkan ke nohup.out secara default. Untuk menentukan file log khusus:

nohup ./script.sh > /var/log/myscript.log 2>&1 &

Pantau Pekerjaan Latar Belakang

jobs          # List background jobs in the current session
ps aux | grep script.sh   # Find the process by name
kill PID      # Terminate a specific background process

Metode 6: Jadwalkan Eksekusi Script dengan Cron

Untuk tugas berulang — backup malam hari, pembersihan mingguan, pemeriksaan kesehatan per jam — penjadwal cron bawaan Linux adalah solusi standar.

Buka Editor Crontab

crontab -e

Sintaks Cron

* * * * * /path/to/script.sh
│ │ │ │ │
│ │ │ │ └── Day of week (0–7, Sunday = 0 or 7)
│ │ │ └──── Month (1–12)
│ │ └────── Day of month (1–31)
│ └──────── Hour (0–23)
└────────── Minute (0–59)

Contoh Cron Praktis

JadwalEkspresi CronContoh Kasus Penggunaan
Setiap hari pukul 2:00 AM0 2 * * *Backup database malam hari
Setiap Senin pukul 6:00 AM0 6 * * 1Rotasi log mingguan
Setiap jam0 * * * *Pemeriksaan pemantauan uptime
Setiap 15 menit*/15 * * * *Penyegaran cache
Saat reboot sistem@rebootMulai layanan atau script saat boot

Contoh: Backup Harian Otomatis

0 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1

Ini menjalankan backup.sh setiap hari pukul 2:00 AM dan menambahkan output standar dan error ke file log untuk audit.

> Pro tip: Selalu gunakan path absolut dalam entri cron. Cron berjalan dengan lingkungan minimal dan mungkin tidak memiliki akses ke $PATH yang sama seperti shell interaktif Anda.

Metode 7: Source Script (Jalankan dalam Konteks Shell Saat Ini)

Ada satu metode eksekusi lagi yang perlu diketahui: sourcing script. Tidak seperti metode di atas, sourcing menjalankan script dalam sesi shell saat ini daripada menelurkan subshell. Ini berarti variabel atau fungsi apa pun yang ditentukan dalam script tetap ada di lingkungan saat ini.

source script.sh

atau setara dengan:

. script.sh

Ini biasanya digunakan untuk memuat variabel lingkungan, mengaktifkan lingkungan virtual, atau menerapkan perubahan konfigurasi ke sesi saat ini.

Pemecahan Masalah Kesalahan Umum

Pesan KesalahanKemungkinan PenyebabSolusi
Permission deniedFile tidak memiliki izin eksekusiJalankan chmod +x script.sh
No such file or directoryPath salah atau file hilangVerifikasi path dengan ls dan pwd
bad interpreter: No such file or directoryBaris shebang salah (misalnya, akhir baris Windows)Jalankan dos2unix script.sh untuk memperbaiki akhir baris
command not foundScript tidak ada di $PATH dan tidak ada awalan ./Gunakan ./script.sh atau path absolut penuh
syntax error near unexpected tokenScript ditulis untuk bash tetapi dijalankan dengan shGunakan bash script.sh secara eksplisit

Praktik Terbaik untuk Menulis dan Menjalankan Shell Script

Mengikuti praktik ini akan membuat script Anda lebih aman, lebih mudah dirawat, dan lebih mudah di-debug — terutama di lingkungan server.

1. Selalu Mulai dengan Baris Shebang

Baris pertama setiap script harus mendeklarasikan interpreter:

#!/bin/bash

atau untuk portabilitas maksimal:

#!/usr/bin/env bash

2. Aktifkan Mode Ketat

Tambahkan ini di dekat bagian atas setiap script produksi:

set -euo pipefail
  • -e — Keluar segera jika ada perintah yang gagal
  • -u — Perlakukan variabel yang tidak ditetapkan sebagai kesalahan
  • -o pipefail — Tangkap kegagalan dalam perintah yang disalurkan

3. Baca Script Sebelum Menjalankannya

Jangan pernah mengeksekusi file .sh dari sumber eksternal atau tidak terpercaya tanpa meninjau isinya terlebih dahulu:

cat script.sh

atau buka di editor teks. Ini sangat penting saat menjalankan dengan sudo.

4. Gunakan Komentar Secara Melimpah

#!/bin/bash
# backup.sh — Daily backup script for /var/www
# Author: sysadmin@example.com
# Last updated: 2024-06-10

# Define source and destination directories
SOURCE="/var/www"
DEST="/mnt/backup"

5. Atur Script dalam Direktori Khusus

DirektoriPenggunaan yang Direkomendasikan
/usr/local/bin/Script di seluruh sistem yang dapat diakses oleh semua pengguna
~/scripts/ atau ~/bin/Script pengguna pribadi
/opt/scripts/Script otomasi spesifik aplikasi
/etc/cron.daily/Script untuk dijalankan setiap hari melalui cron

6. Catat Output Script

Selalu alihkan output ke file log untuk script yang berjalan tanpa pengawasan:

./script.sh >> /var/log/script.log 2>&1

7. Uji Script di Lingkungan yang Aman Terlebih Dahulu

Sebelum menyebarkan script ke server produksi, uji di lingkungan staging atau instance VPS yang dapat dibuang di mana kesalahan tidak akan menyebabkan downtime.

Menjalankan Shell Script di Server Linux: Pertimbangan Praktis

Saat menjalankan script di server Linux jarak jauh — baik itu lingkungan bersama atau mesin khusus — beberapa faktor tambahan ikut bermain:

  • Akses SSH: Sebagian besar scripting sisi server terjadi melalui SSH. Alat seperti ###PPT_NOTR_
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai