Menu
CoddyTech

Menambahkan Timestamp

Termasuk bagian Dasar-Dasar dalam perjalanan Terminal di Coddy. Pelajaran 78 dari 82.

challenge icon

Tantangan

Mudah

Mari buat nama folder cadangan yang unik dengan menambahkan stempel waktu. Dengan begitu, setiap pencadangan membuat folder baru dan tidak menimpa folder sebelumnya.

Tulis ulang backup.sh agar berisi skrip lengkap yang sudah diperbarui (jalankan cat backup.sh untuk melihat versi dari pelajaran sebelumnya):

  1. Pertahankan semua baris lain dari skrip pelajaran sebelumnya
  2. Ganti backup_dir="backup" yang statis dengan nama dinamis yang menyertakan stempel waktu
  3. Gunakan substitusi perintah dengan perintah date untuk membuat stempel waktu dalam format YYYYMMDD_HHMMSS
  4. Nama folder cadangan harus berupa: backup_[timestamp]

Perintah date dengan penentu format menghasilkan stempel waktu:

date +%Y%m%d_%H%M%S

Gunakan substitusi perintah $(command) untuk menyimpan output ini dalam variabel:

timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"

Menulis skrip beberapa baris dengan satu echo untuk setiap baris bisa dilakukan, tetapi ada cara yang lebih singkat: *here document* mengirimkan semua isi hingga kata penutup langsung ke dalam file.

cat > script.sh << 'EOF'
#!/bin/bash
echo "hello"
EOF

Tanda kutip di sekitar 'EOF' mencegah $variables diekspansi saat file ditulis. Inilah yang kamu inginkan ketika skrip itu sendiri menggunakannya.

Jalankan skrip dengan documents sebagai input (echo "documents" | bash backup.sh). Outputmu seharusnya terlihat seperti ini:

Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfully

Stempel waktu pada outputmu akan berbeda, bergantung pada tanggal dan waktu saat ini.

Petunjuk: Tambahkan timestamp=$(date +%Y%m%d_%H%M%S) sebelum mendefinisikan backup_dir, lalu gunakan backup_dir="backup_$timestamp" untuk membuat nama folder yang dinamis.

Coba sendiri

Terminal
echo 'cp "$source_dir"/* "$backup_dir"' >> backup.sh
echo 'echo "Files copied successfully"' >> backup.sh
echo "documents" | bash backup.sh
ls backup

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Terminal