Skip to content

Pengantar Fitur Task Scheduler

Task Scheduler (Penjadwal Tugas) digunakan untuk mengotomatiskan tugas berkala di WSL, menghindari operasi pemeliharaan manual yang berulang. Ini menyediakan antarmuka manajemen visual yang memungkinkan Anda membuat dan mengelola tugas terjadwal tanpa harus mengingat parameter baris perintah yang rumit.

Contoh skenario fitur ini:

  • Mencadangkan distribusi WSL secara teratur
  • Menjalankan skrip atau perintah kustom

Semua tugas dikumpulkan di bawah jalur \WSLDashboard\UserTasks\ di Windows Task Scheduler untuk manajemen dan tampilan terpusat. Anda dapat melihat status tugas secara real-time (Siap / Berjalan / Dinonaktifkan) di antarmuka.

Skrip Komunitas

Anda dapat mengunduh contoh skrip (backup distribusi) dari repositori komunitas untuk memulai dengan cepat:

https://github.com/owu/wsl-community

Ini adalah repositori kode yang digerakkan oleh komunitas. Pull Request dipersilakan untuk berkontribusi skrip atau berbagi praktik terbaik.

Menjalankan Perintah

Konfigurasi Perintah

Setiap tugas terjadwal dapat dikonfigurasi dengan perintah (skrip atau file yang dapat dieksekusi), yang mendukung opsi berikut:

PengaturanDeskripsi
PerintahJalur ke skrip atau file yang dapat dieksekusi. Mendukung format .bat, .ps1, .cmd, .exe, .py. Gunakan tombol "Jelajahi" untuk memilih file.
ArgumenArgumen tambahan yang diteruskan ke perintah, opsional.
Jalankan dengan hak istimewa adminSaat diaktifkan, tugas berjalan dengan hak istimewa tertinggi, cocok untuk operasi yang memerlukan peningkatan UAC.

Operasi Tugas

Setelah membuat tugas, Anda dapat melakukan operasi berikut:

TindakanDeskripsi
Jalankan sekarangPaksa tugas untuk segera dieksekusi, terlepas dari aturan penjadwalan.
Aktifkan/NonaktifkanJeda atau lanjutkan penjadwalan otomatis tugas.
HapusHapus tugas dari Task Scheduler.

Aturan Penjadwalan

Ekspresi Cron

Penjadwalan tugas menggunakan ekspresi Cron 5 bidang standar untuk menentukan aturan eksekusi, dengan format sebagai berikut:

menit jam hari bulan hari_kerja
BidangRentangDeskripsi
menit0 - 59Menit dalam jam untuk dieksekusi
jam0 - 23Jam dalam hari untuk dieksekusi
hari1 - 31Hari dalam bulan untuk dieksekusi
bulan1 - 12Bulan dalam tahun untuk dieksekusi
hari_kerja0 - 70 dan 7 sama-sama mewakili hari Minggu

Setiap bidang mendukung sintaks berikut:

  • * —— Cocok dengan semua nilai (misalnya * * * * * berarti setiap menit)
  • */N —— Setiap N unit (misalnya */5 * * * * berarti setiap 5 menit)
  • Angka tunggal —— Cocok dengan nilai tertentu (misalnya 0 9 * * 1 berarti setiap hari Senin jam 9:00 pagi)

Catatan: Nilai ganda yang dipisahkan koma (seperti 1,15) dan ekspresi rentang (seperti 1-5) tidak didukung. Keterbatasan lebih lanjut lihat Peringatan di bawah ini.

Pola Kombinasi yang Didukung

Perangkat lunak ini tidak menjalankan daemon Cron asli, melainkan menerjemahkan ekspresi Cron ke parameter pemicu Windows Task Scheduler (schtasks.exe). Untuk pemetaan yang akurat, parser hanya mendukung 7 pola kombinasi berikut, yang mencakup sebagian besar skenario tugas terjadwal:

#PolaDeskripsiSkenario Penggunaan
1* * * * *Eksekusi setiap menitTugas pemantauan dan deteksi real-time
2*/N * * * *Eksekusi setiap N menitTugas pemeriksaan berkala
3M * * * *Eksekusi pada menit ke-M setiap jam (mis. 3 * * * *)Tugas per jam
4M H * * *Eksekusi pada jam H menit M setiap hari (mis. 0 3 * * *)Pemeliharaan harian, seperti membersihkan log setiap dini hari
5M H * * DOWEksekusi pada hari tertentu dalam seminggu jam H menit M (mis. 0 12 * * 1)Tugas rutin mingguan, seperti mencadangkan data setiap hari Senin
6M H D * *Eksekusi pada tanggal tertentu setiap bulan jam H menit MTugas bulanan, seperti membuat laporan setiap tanggal 1
7M H D MON *Eksekusi pada bulan dan tanggal tertentu setiap tahun jam H menit MTugas tahunan, seperti pada bulan tertentu

Jika ekspresi tidak termasuk dalam 7 pola di atas, sistem akan menganggapnya sebagai Unsupported cron pattern dan menolak pembuatan.

Peringatan

Karena implementasi dasarnya menggunakan Windows Task Scheduler, parser Cron perangkat lunak ini memiliki perbedaan berikut dengan Cron Linux standar:

1. Tidak mendukung daftar (,) dan rentang (-)

Cron standar memungkinkan penggunaan koma untuk menentukan beberapa titik waktu diskrit (seperti 1,15,30 * * * * berarti menit ke-1, 15, 30), atau tanda hubung untuk menentukan rentang (seperti 1-5 * * * * berarti menit ke-1 hingga 5).

Keterbatasan perangkat lunak ini: Setiap bidang hanya dapat diisi angka tunggal, tanda bintang (*), atau langkah (*/N), tidak mendukung koma dan tanda hubung.

2. Tidak mendukung kombinasi bebas

Cron standar memungkinkan kombinasi bebas bidang apa pun (seperti * 3 * * * berarti setiap menit pada jam 3 pagi), tetapi perangkat lunak ini hanya mendukung 7 pola tetap yang tercantum di atas. Ekspresi yang tidak termasuk dalam rentang ini akan ditolak.

3. Perbedaan penyelarasan waktu pada pola langkah

Dalam Cron standar, */5 * * * * disejajarkan secara ketat ke menit 0, 5, 10, 15... pada jam. Perangkat lunak ini menerjemahkannya ke parameter /SC MINUTE /MO 5 Windows, di mana logika penanganan Windows adalah menghitung interval sejak tugas dibuat atau diaktifkan.

Misalnya, jika Anda menyimpan dan mengaktifkan tugas yang berjalan setiap 5 menit pada pukul 10:02, tugas tersebut akan pertama kali dijalankan pada 10:07, lalu 10:12, bukan disejajarkan ke menit standar 10:05.