Developer

Lima skrip pendek yang benar-benar dipakai sehari-hari

Bukan pekerjaan paling membosankan yang layak diotomatiskan, melainkan yang paling sering Anda lakukan salah. Lima skrip bash yang bisa langsung dijalankan.

Sinta Dewi

3 Juli 2026 4 menit baca

Foto hitam putih tangan memegang ponsel di dekat jendela berkorden
Foto hitam putih tangan memegang ponsel di dekat jendela berkorden

Pekerjaan yang paling layak diotomatiskan bukan yang paling membosankan. Melainkan yang paling sering Anda lakukan salah.

Mengubah nama tiga ratus berkas itu membosankan, tapi Anda hampir tidak pernah keliru. Menyalin folder proyek ke backup setiap Jumat itu tidak membosankan sama sekali — dan justru itu yang terlewat ketika Anda sedang sibuk.

Tulisan ini berisi lima skrip pendek yang benar-benar bisa dijalankan. Semuanya untuk macOS dan Linux, dan semuanya bisa Anda pahami dalam satu bacaan.

Aturan sebelum mulai

Satu hal yang menyelamatkan banyak orang dari kerugian: jalankan mode uji dulu.

Setiap skrip yang mengubah atau menghapus berkas sebaiknya punya sakelar yang hanya mencetak apa yang akan dilakukannya. Jalankan itu dulu, baca keluarannya, baru jalankan yang sesungguhnya. Kebiasaan ini terasa berlebihan sampai suatu hari ia menyelamatkan folder yang salah ketik.

1. Ganti nama berkas secara berurutan

Berguna untuk foto dari kamera yang namanya acak.

#!/bin/bash
# ganti-nama.sh — DRY_RUN=1 untuk mengecek dulu
prefix="${1:-foto}"
i=1
for f in *.jpg *.JPG; do
  [ -e "$f" ] || continue
  baru=$(printf "%s-%03d.jpg" "$prefix" "$i")
  if [ "$DRY_RUN" = "1" ]; then
    echo "akan: $f -> $baru"
  else
    mv -n -- "$f" "$baru"
  fi
  i=$((i+1))
done

Jalankan DRY_RUN=1 ./ganti-nama.sh liburan lebih dulu. Perhatikan mv -n — flag itu menolak menimpa berkas yang sudah ada, dan itu satu-satunya hal yang berdiri antara Anda dan kehilangan data.

2. Backup yang hanya menyalin perubahan

#!/bin/bash
# backup.sh
sumber="$HOME/Proyek/"
tujuan="/Volumes/Backup/Proyek/"

[ -d "$tujuan" ] || { echo "Drive backup tidak terpasang."; exit 1; }

rsync -av --delete 
  --exclude 'node_modules' 
  --exclude '.DS_Store' 
  --exclude '*.tmp' 
  "$sumber" "$tujuan"

Kunci dari skrip ini ada di baris ketiga: ia berhenti kalau drive tujuan tidak terpasang. Tanpa pemeriksaan itu, rsync akan membuat folder kosong di titik pemasangan dan --delete akan bekerja pada tempat yang salah.

Tambahkan --dry-run saat pertama kali mencoba.

3. Kompres gambar sebelum diunggah

Butuh ImageMagick (brew install imagemagick).

#!/bin/bash
# perkecil.sh — hasil ditulis ke folder terpisah
mkdir -p keluaran
for f in *.jpg *.png; do
  [ -e "$f" ] || continue
  magick "$f" -resize '1600x1600>' -quality 82 "keluaran/${f%.*}.jpg"
  echo "selesai: $f"
done

Tanda > di dalam -resize berarti “hanya perkecil, jangan pernah perbesar”. Hasilnya ditulis ke folder terpisah, jadi berkas asli Anda tidak pernah tersentuh.

4. Bersihkan unduhan lama

#!/bin/bash
# bersihkan-unduhan.sh
hari="${1:-30}"
target="$HOME/Downloads"

echo "Berkas di $target yang lebih tua dari $hari hari:"
find "$target" -maxdepth 1 -type f -mtime +"$hari" -print

read -r -p "Pindahkan ke Trash? (y/N) " jawab
[ "$jawab" = "y" ] || exit 0

find "$target" -maxdepth 1 -type f -mtime +"$hari" 
  -exec mv -- {} "$HOME/.Trash/" ;

Perhatikan bahwa skrip ini memindahkan ke Trash, bukan menghapus. Dan ia menampilkan daftarnya dulu lalu meminta konfirmasi. Skrip pembersih yang langsung menghapus tanpa bertanya adalah cara cepat kehilangan sesuatu yang Anda butuhkan.

5. Catat apa yang Anda kerjakan hari ini

#!/bin/bash
# catat.sh "isi catatan"
berkas="$HOME/Catatan/$(date +%Y-%m).md"
mkdir -p "$(dirname "$berkas")"

if [ ! -s "$berkas" ]; then
  echo "# Catatan $(date '+%B %Y')" > "$berkas"
fi

printf 'n- **%s** %sn' "$(date '+%d/%m %H:%M')" "$*" >> "$berkas"
echo "tercatat di $berkas"

Pasang alias di ~/.zshrc: alias c='~/skrip/catat.sh'. Setelah itu c "selesai migrasi database" cukup untuk membangun catatan bulanan tanpa membuka aplikasi apa pun.

Ini yang paling sederhana dari kelimanya, dan biasanya yang paling sering dipakai.

Menjalankannya otomatis

Di macOS, launchd adalah cara yang benar, tapi cron masih berfungsi dan jauh lebih mudah dibaca. Jalankan crontab -e:

# backup tiap Jumat pukul 17.00
0 17 * * 5 /Users/nama/skrip/backup.sh >> /tmp/backup.log 2>&1

Bagian >> /tmp/backup.log 2>&1 itu wajib. Tanpa mencatat keluaran, skrip terjadwal yang gagal akan gagal dalam diam — dan Anda baru tahu berbulan-bulan kemudian, saat membutuhkan backup yang ternyata tidak pernah dibuat.

Periksa log itu sesekali. Otomatisasi yang tidak pernah diperiksa bukan otomatisasi, melainkan asumsi.

Kapan sebaiknya tidak diotomatiskan

Kalau pekerjaan itu Anda lakukan sekali sebulan dan hanya makan lima menit, menulis skripnya butuh waktu lebih lama daripada yang akan Anda hemat seumur hidup skrip itu.

Kalau langkahnya berubah setiap kali dijalankan, skrip akan lebih sering rusak daripada membantu.

Dan kalau kesalahannya mahal serta sulit dibatalkan — memindahkan uang, mengirim surel ke pelanggan, menghapus data produksi — biarkan ada manusia yang menekan tombol terakhir.


Semua skrip di atas ditulis untuk bash di macOS dan Linux. Uji di folder contoh sebelum menjalankannya pada berkas asli Anda.

Bagikan artikel ini

Penulis

Sinta Dewi

Menulis dan menyunting untuk ID Tech Life. Meliput AI, gadget, startup, dan dunia developer di Indonesia — dengan fokus pada hal yang bisa langsung dipakai pembaca. [SILAKAN GANTI: tambahkan latar belakang dan keahlian Anda sendiri di Pengguna → Profil.]

Semua artikel penulis

Komentar pembaca (0)

  • Belum ada komentar. Jadilah yang pertama berbagi pendapat.
Tinggalkan komentar

Artikel lainnya

Lihat semua