• 20-04-2024, 16:19:35
    #1
    Script amacı devamlı format atılıp kurulan vps-vds ve kontroller panellerinde oluşan veri bloklarını temizleme

    Trim Otomatik Temizlik Scripti
    Bu bash scripti, SSD (Solid-State Drive) üzerinde Trim işlemini otomatik olarak çalıştırır. Trim, SSD ve NVME 'de kullanılmayan veri bloklarını temizleyerek yazma hızını artırır ve SSD veya NVME 'nin ömrünü uzatır.

    Özellikler
    Otomatik Trim işlemi
    Temizlenen alan miktarının gösterilmesi
    Otomatik olarak systemd servis dosyasının oluşturulması ve etkinleştirilmesi

    Kullanım
    trim.sh scriptini çalıştırarak Trim işlemini başlatın.
    Temizlenen alan miktarı, Trim işlemi tamamlandığında gösterilecektir.

    Repository'yi klonlayın:

    git clone https://github.com/OmerAti/trim-script.git
    Scripte çalıştırma izni verin:

    chmod +x trim.sh
    Scripti çalıştırın:

    /trim.sh
    Trim işlemi, systemd zamanlayıcı (timer) aracılığıyla her pazartesi saat 00:00'da otomatik olarak çalıştırılır.
    Tüm Kontrol Panelleriyle Sorunsuz Çalıştır
  • 20-04-2024, 17:14:46
    #2
    selam hocam. çok bash bildiğim söylenemez ancak otomatik calısan komutu goremedim ?

    trim.sh calısınca bir komut var ancak timer ne için komut boş gibi ?

  • 20-04-2024, 17:19:00
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    selam hocam. çok bash bildiğim söylenemez ancak otomatik calısan komutu goremedim ?

    trim.sh calısınca bir komut var ancak timer ne için komut boş gibi ?

    yanlış bakıyorsun cron işi degil
    OnCalendar=weekly
    ayarına sahip, yani her hafta bir kez otomatik olarak çalışacak şekilde ayarladım
    kurulumdan sonra
    sudo systemctl list-timers --all
    yapakarak bakabilirsin
  • 20-04-2024, 17:23:33
    #4
    hocam ondan bahsediyorum zaten

    en başta trim.sh başlatılınca çalıstırılan komut var

    trimmed_amount=$(fstrim -v / | awk '{print $2, $3}')
    echo "Trim islemi basariyla tamamlandi $trimmed_amount alan temizlendi ve optimize edildi "
    bu bağımsız bir komut tek seferlik çalışıyor.

    cat <<EOF > /etc/systemd/system/fstrim.timer
    [Unit]
    Description=Discard unused blocks once a week
    
    [Timer]
    OnCalendar=weekly
    AccuracySec=1h
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    EOF
    hocam burada timer oluşturuyorsunuz.
    ancak timerda herhangi bir komut yok ?

    systemctl daemon-reload
    systemctl enable fstrim.timer
    systemctl start fstrim.timer
    burada servisler başlatılıyor

    yani timer her çalıştığında çalışacak komut nerede oluyor

    söylemek istediğim, ExecStart gibi bir şey yok ?
  • 20-04-2024, 17:25:33
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    hocam ondan bahsediyorum zaten

    en başta trim.sh başlatılınca çalıstırılan komut var

    trimmed_amount=$(fstrim -v / | awk '{print $2, $3}')
    echo "Trim islemi basariyla tamamlandi $trimmed_amount alan temizlendi ve optimize edildi "
    bu bağımsız bir komut tek seferlik çalışıyor.

    cat <<EOF > /etc/systemd/system/fstrim.timer
    [Unit]
    Description=Discard unused blocks once a week
    
    [Timer]
    OnCalendar=weekly
    AccuracySec=1h
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    EOF
    hocam burada timer oluşturuyorsunuz.
    ancak timerda herhangi bir komut yok ?

    systemctl daemon-reload
    systemctl enable fstrim.timer
    systemctl start fstrim.timer
    burada servisler başlatılıyor

    yani timer her çalıştığında çalışacak komut nerede oluyor
    herhangi bir zaman dilimi belirmedigim için
    pazartesi günü saat 00:00 olarak varsayılan olarak çalışır
  • 20-04-2024, 17:25:46
    #6
    OmerAti adlı üyeden alıntı: mesajı görüntüle
    herhangi bir zaman dilimi belirmedigim için
    pazartesi günü saat 00:00 olarak varsayılan olarak çalışır
    hocam timerin içi boş
  • 20-04-2024, 17:29:33
    #7
    timer da bunun gibi bir şey olması lazım

    [Service]
    ExecStart=/bin/sh -c "fstrim -v / | awk '{print \$2, \$3}'"
    yoksa sadece trim.sh çalıştırdığınızla (1 seferlik temizlik ile) kalırsınız. otomatik silen bir şey yok timer içine koymayı unutmuşsunuz ondan bahsediyorum hocam

    çıktıya loglardan bakmayacaksak böyleside yeterlidir.

    [Service]
    ExecStart=/bin/sh -c "fstrim -v"
    çabanıza sağlık ya gözünüzden kaçtı yada tecrübesizlik
  • 20-04-2024, 17:32:48
    #8
    Misafir adlı üyeden alıntı: mesajı görüntüle
    timer da bunun gibi bir şey olması lazım

    [Service]
    ExecStart=/bin/sh -c "fstrim -v / | awk '{print $2, $3}'"
    Evet, OnCalendar=weekly ayarı zaten her hafta belirtilen günün (varsayılan olarak pazartesi) 00:00 saatine ayarlanır. Bu nedenle, özel bir saat belirtmeme gerek yok.

    yani sistem çekicek özel olarak saat girmiyorum yani

    özel saat gireceksen
    [Timer] 
    OnCalendar=Mon *-*-* 02:00:00 
    AccuracySec=1h 
    Persistent=true
    böyle degiştirmem gerek bende saati varsayılan olarak kullandıgım için boş bıraktıgımdan dolayi sistemden çekicek her pazartesi 00:00 çalışacak yani özel saat dilimi belirtmedim bunu demek istiyorum
  • 20-04-2024, 17:33:22
    #9
    OmerAti adlı üyeden alıntı: mesajı görüntüle
    Evet, OnCalendar=weekly ayarı zaten her hafta belirtilen günün (varsayılan olarak pazartesi) 00:00 saatine ayarlanır. Bu nedenle, özel bir saat belirtmeme gerek yok.

    yani sistem çekicek özel olarak saat girmiyorum yani

    özel saat gireceksen
    [Timer]
    OnCalendar=Mon *-*-* 02:00:00
    AccuracySec=1h
    Persistent=true
    böyle degiştirmem gerek bende saati varsayılan olarak kullandıgım için boş bıraktıgımdan dolayi sistemden çekicek her pazartesi 00:00 çalışacak yani özel saat dilimi belirtmedim bunu demek istiyorum
    hocam ben saat ile alakalı bir şey konuşmuyorum. bir timer oluşturmuşsunuz,
    ancak bu timer neyi tetikleyecek ? tetiklediği kısımı boş bırakmışsınız.