Zona waktu, locale, dan bahasa sistem
Cara mengatur zona waktu, mengaktifkan sinkronisasi waktu, mengonfigurasi locale UTF-8, dan mengapa log dan database sebaiknya disimpan dalam UTC.
Diperbarui 23 Agustus 2026
Mesin baru biasanya berjalan dalam UTC dengan kumpulan locale yang minimal. Selama Anda tidak membaca log atau menjalankan tugas terjadwal, Anda tidak akan menyadarinya. Begitu cron, email, dan laporan mulai digunakan, waktu dan encoding menjadi sangat penting.
Zona waktu
timedatectl
timedatectl list-timezones | grep Moscow
timedatectl set-timezone Europe/Moscow
timedatectl menampilkan waktu lokal, UTC, dan status sinkronisasi. Baris System clock synchronized: yes berarti jam tersinkronisasi melalui jaringan.
Jika sinkronisasi mati:
timedatectl set-ntp true
systemctl status systemd-timesyncd
Di AlmaLinux dan CentOS Stream, chronyd biasanya bertanggung jawab atas waktu:
systemctl enable --now chronyd
chronyc tracking
Locale
Locale menentukan bahasa pesan, encoding, serta format angka dan tanggal. Minimal yang diperlukan adalah UTF-8; jika tidak, nama file dan keluaran program berbahasa Rusia berubah menjadi tanda tanya.
Debian dan Ubuntu:
apt install -y locales
dpkg-reconfigure locales
localectl set-locale LANG=ru_RU.UTF-8
AlmaLinux dan CentOS Stream:
dnf install -y glibc-langpack-ru
localectl set-locale LANG=ru_RU.UTF-8
Periksa:
locale
locale -a | grep -i utf
Perubahan berlaku untuk sesi baru—login kembali melalui SSH.
Tata letak keyboard di konsol
Tampilan "Screen" (VNC) di tab "Console" pada panel /hosting/vds/m/<id> meneruskan penekanan tombol apa adanya. Jika Anda perlu mengetik Sirilik langsung di sana:
localectl set-keymap ru
Layanan tidak memerlukan ini—UTF-8 sudah cukup bagi mereka.
Apa yang sebaiknya dibiarkan dalam UTC
Masuk akal untuk membiarkan sistem itu sendiri dan basis data dalam UTC, dan hanya menampilkan waktu lokal kepada orang.
- Log dalam UTC dapat dibandingkan antar mesin dan tidak melonjak saat jam berubah.
- Basis data dalam UTC tidak merusak perhitungan interval.
- Cron menghitung waktu berdasarkan zona waktu sistem: jika Anda mengubah zona waktu, baca ulang jadwalnya.
systemctl restart cron
crontab -l
Kesalahan umum
| Gejala | Penyebab | Solusi |
|---|---|---|
setlocale: LC_ALL: cannot change locale | Klien mengirim locale-nya sendiri, tetapi locale tersebut tidak ada di server | Buat locale atau hapus penerusan LANG di klien |
| Karakter rusak pada nama file | Locale bukan UTF-8 | LANG=ru_RU.UTF-8 lalu login kembali |
| Waktu "bergeser" beberapa menit | Sinkronisasi mati | timedatectl set-ntp true |
| Tugas berjalan pada jam yang salah | Anda mengubah zona waktu tetapi jadwalnya tetap sama | Hitung ulang crontab |
Ubah zona waktu sebelum Anda menyiapkan tugas pencadangan dan logging. Pada mesin yang sedang berjalan, mengubah zona waktu berarti meninjau semua jadwal sekaligus.