Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Sistem Saati
  • Fiziksel Saat
  • NTP ile Zaman Senkronizasyonu (Modern Yöntemler)
  • systemd-timesyncd
  • chrony
  • Saat Diliminin Ayarlanması
  • timedatectl ile Ayarlama (Önerilen Yöntem)
  • Manuel Yöntem (Eski veya systemd olmayan sistemler)
  1. Gelişmiş Terminal Komutları

Tarih ve Saat Ayarlama

Sistem Saati

Linux üzerinde tarih ve saat ayarlama işlemleri date komutu ile gerçekleştirilir. Komutu tek başına yazdığınızda tarih ve saati çıktı olarak verir.

date
Sun Nov 15 19:22:23 EET 2015

date komutu ile istediğimiz biçimde çıktı alabiliriz.

date +%d_%m_%Y
15_11_2015

Daha kompleks işlemler için boşluklu parametreleri çift tırnak içinde birleştirip tek parametre olarak programa sunmak gerekir.

date +"Ay:%m / Yıl:%y"
Ay:11 / Yıl:15

Saati ve tarihi ayarlamak içinse aşağıdaki gibi bir yol izlenebilir.

date -s "2 NOV 2014 17:45:12"
Sun Nov 2 17:45:12 EET 2014

Sadece saati değiştirmek için,

date -s "15:12:13"
Sun Nov 2 15:12:13 EET 2014

Veya dilediğiniz biçimde tarih belirtmek için,

date +%Y%m%d%T -s "20120423 09:15:12"

Fiziksel Saat

Sistem üzerine yazılan saatler, bilgisayarın pil ile tutulan fiziksel saatine doğrudan kaydedilmez. Fiziksel saatteki bilgiye erişmek için hwclock komutu kullanılmalıdır.

Fiziksel saatteki bilgiyi okumak için

hwclock -r
Sun 15 Nov 2015 07:37:57 PM EET  -0.960295 seconds

Yukarıdaki çıktıda -0.960295 saniye'lik bir fark görünüyor. Bu komutu verdiğimiz an ile, cihazdan okuduğumuz saat arasındaki fark. Kısacası cihaz bize neredeyse 1 saniye içerisinde cevap vermiş. Bu süre zarfında hwclock komutunun yaptıklarını daha detaylı görmek için -D (debug) parametresiyle çalıştırabilirsiniz.

hwclock -D
hwclock from util-linux 2.20.1
Using /dev interface to clock.
Last drift adjustment done at 1435275720 seconds after 1969
Last calibration done at 1435275720 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/11/15 17:39:39
Hw clock time : 2015/11/15 17:39:39 = 1447609179 seconds since 1969
Sun 15 Nov 2015 07:39:39 PM EET  -0.969248 seconds

Fiziksel saatteki değeri okuyup, sistem saatinizi bununla güncellemek isteyebilirsiniz. Aslında bilgisayarlarınızın açılışta yaptığı bir işlemdir bu. Böylelikle sisteminize hiç enerji verilmediği durumlarda saat pili ile sistem geçen zamanı tutmaya devam eder, sisteminiz tekrar açıldığında bu cihazdan (RTC: Real Time Clock) saati okur ve kendi tarihini bu değerle günceller.

hwclock -s

Öte yandan, date komutu ile sistem saatini güncellemeyi öğrenmiştik. Bu komut ile sistem saatinizi güncelledikten sonra fiziksel saatin değerinin değişmemesi normal. Eğer fiziksel saatin değerini de sistem saatinizdekine ayarlamak isterseniz, bu bilgiyi RTC modülüne yazmanız gerekir.

hwclock -w

NTP ile Zaman Senkronizasyonu (Modern Yöntemler)

NTP (Network Time Protocol), ağ üzerindeki sunuculardan hassas zaman bilgisi alarak sistem saatini doğru tutmak için kullanılan standart protokoldür. Modern Linux dağıtımları genellikle zaman senkronizasyonu için systemd-timesyncd veya chrony servislerini kullanır. ntpdate komutu çoğu sistemde artık önerilmemektedir (deprecated).

systemd-timesyncd

Birçok modern dağıtımda varsayılan olarak gelen basit bir NTP istemcisidir. Genellikle ek kurulum gerektirmez.

Durumu Kontrol Etme:timedatectl status komutu ile hem zaman ayarlarını hem de NTP senkronizasyon durumunu görebilirsiniz:

timedatectl status
               Local time: Cum 2025-03-28 02:05:10 +03
           Universal time: Per 2025-03-27 23:05:10 UTC
                 RTC time: Per 2025-03-27 23:05:10
                Time zone: Europe/Istanbul (+03, +0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no 

System clock synchronized: yes ve NTP service: active satırları senkronizasyonun çalıştığını gösterir.

Etkinleştirme/Devre Dışı Bırakma:timedatectl komutu ile NTP senkronizasyonunu açıp kapatabilirsiniz:

# NTP senkronizasyonunu etkinleştir
sudo timedatectl set-ntp true

# NTP senkronizasyonunu devre dışı bırak
sudo timedatectl set-ntp false 

systemd-timesyncd servisi genellikle /etc/systemd/timesyncd.conf dosyasından yapılandırılır ve varsayılan olarak dağıtımın belirlediği NTP sunucu havuzlarını (pool) kullanır.

chrony

ntpd'ye göre daha modern, hızlı ve esnek bir NTP istemcisi ve sunucusudur. Özellikle sık sık uyku moduna giren veya ağ bağlantısı kararsız olan sistemler için daha uygundur. Bazı dağıtımlar (örneğin RHEL/CentOS 7 ve sonrası) varsayılan olarak chrony kullanır.

Kurulum (Gerekliyse):

# Debian/Ubuntu
sudo apt install chrony

# RHEL/CentOS/Fedora
sudo dnf install chrony 

Durumu Kontrol Etme:chronyc komutu ile senkronizasyon durumu ve kaynaklar hakkında detaylı bilgi alınabilir:

chronyc sources -v
chronyc tracking

Yapılandırma:chrony genellikle /etc/chrony/chrony.conf (veya /etc/chrony.conf) dosyasından yapılandırılır. Kullanılacak NTP sunucuları bu dosyada server veya pool direktifleri ile belirtilir.

Servis Yönetimi:chrony bir sistem servisidir ve systemctl ile yönetilir:

sudo systemctl start chronyd
sudo systemctl enable chronyd
sudo systemctl status chronyd

Önemli Not: Sistemde aynı anda sadece bir NTP istemcisinin (örneğin systemd-timesyncd veya chrony veya eski ntpd) aktif olması önerilir. Çakışmaları önlemek için kullanılmayacak olan servisleri devre dışı bırakmak gerekir.

Zaman senkronizasyonu yapıldıktan sonra, sistem saatindeki değişikliğin donanım saatine (RTC) yazılması genellikle bu servisler tarafından otomatik olarak veya periyodik olarak yapılır. Ancak manuel olarak yapmak isterseniz hwclock -w komutunu kullanabilirsiniz.

Saat Diliminin Ayarlanması

Sistem saat dilimi (timezone), sistemin yerel saati doğru göstermesi için önemlidir.

timedatectl ile Ayarlama (Önerilen Yöntem)

Modern systemd tabanlı sistemlerde saat dilimini ayarlamanın en kolay ve önerilen yolu timedatectl komutunu kullanmaktır.

Mevcut Saat Dilimini Görme:

timedatectl status | grep "Time zone"
# veya sadece:
timedatectl

Kullanılabilir Saat Dilimlerini Listeleme:

timedatectl list-timezones
# Belirli bir bölgeyi filtrelemek için grep kullanılabilir:
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep Istanbul

Saat Dilimini Ayarlama: Örneğin, saat dilimini İstanbul olarak ayarlamak için:

sudo timedatectl set-timezone Europe/Istanbul

Bu komut, gerekli sembolik linki (/etc/localtime -> /usr/share/zoneinfo/...) otomatik olarak oluşturur veya günceller.

Manuel Yöntem (Eski veya systemd olmayan sistemler)

timedatectl komutunun bulunmadığı sistemlerde veya manuel olarak yapmak istenirse, /etc/localtime dosyası, /usr/share/zoneinfo altındaki doğru saat dilimi dosyasına işaret eden bir sembolik link olarak ayarlanır.

Önce mevcut link (varsa) kaldırılır, sonra yenisi oluşturulur:

# Önce mevcut linki kaldır (varsa)
sudo rm /etc/localtime

# Yeni sembolik linki oluştur (örnek: İstanbul)
sudo ln -s /usr/share/zoneinfo/Europe/Istanbul /etc/localtime 

Bazı eski sistemlerde /etc/timezone gibi metin tabanlı bir yapılandırma dosyası da bulunabilir ve bunun da güncellenmesi gerekebilir (örneğin içine Europe/Istanbul yazmak). Ancak modern sistemlerde genellikle sadece /etc/localtime linki yeterlidir.

/etc/localtime dosyası, saat dilimi kurallarını içeren binary bir dosyaya işaret eden bir sembolik linktir. Bu dosyanın doğrudan kopyalanması yerine sembolik link kullanılması, tzdata paketi güncellendiğinde saat dilimi kurallarının da otomatik olarak güncellenmesini sağlar. /etc/localtime dosyasının veya linkinin olmaması durumunda, sistem genellikle saat dilimini UTC (GMT+0) olarak varsayar.

PreviousGelişmiş Terminal KomutlarıNextSistem Yükünü İzleme

Last updated 1 month ago