• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

"tuptime Kronometre" İle Sistem Çalışma Süresini Ölçün

TRWE_2012

Süper Moderatör
Üyelik Tarihi
2 Haz 2020
Konular
3,095
Mesajlar
5,896
MFC Puanı
20,830
ÖnSöz

Linux sunucusu/pc'si yeniden başlatılmadan ne kadar süredir çalışıyor? Ve sistem siz fark etmeden ne sıklıkla yeniden başlatıldı? Bu sorular ve daha fazlası tuptime aracı tarafından yanıtlanır.

Bir Linux sistemi uzun süredir çalışıyorsa, bu kesinlikle onun kararlılığının kanıtıdır, ancak - dağıtıma bağlı olarak - bazı güncellemeler yüklenmeyi bekliyor olabilir. Tersine, sistem çok sık yeniden başlatılırsa, bir yapılandırma hatası olabilir veya bir donanım bileşeni yavaş yavaş bozuluyor olabilir. Bir iş istasyonu bilgisayarında, bu tür yeniden başlatmalar hızlı bir şekilde fark edilir, ancak eylemden uzakta ve sessizce çalışan bir uzak sunucuda olması gerekmez.

Bir sistemin sürekli olarak ne kadar süredir çalıştığı komut satırında bir çağrı ile belirlenebilir uptime. Ancak , adı "toplam çalışma süresi" kısaltmasına dayanan benzer bir araç olan tuptime' i de denemek isteyebilirsiniz . Yeniden başlatma sayısı ve kullanılan çekirdek sürümü biçimindeki değerli bilgiler de dahil olmak üzere çok daha fazla bilgi verir.

Kurulum​

Hemen hemen her sistemde mevcut olsa uptime, tuptime'ı ayrı olarak kurmanız gerekir. Debian ve Ubuntu gibi bazı dağıtımlar depolarında bu araca zaten sahiptir. Arch Linux kullanıcıları tuptime'ı AUR'de ve CentOS kullanıcıları EPEL deposunda bulacaktır. Herhangi bir Linux sisteminde aracı aşağıdakilerle kurabilirsiniz:

Bash:
curl -Ls https://git.io/tuptime-install.sh | sudo bash

Örnek Ekran Görüntüsü :

tuptime.sh.png
TRWE_2012, söz konusu .sh bash shell betik dosyasının /(root) dizine indirdi ve sistem bunu systemd i. hizmeti olarak atadı ve cron ile zamanladı.Böylece sistemin açılış ve kapanışlarının loglarının tutulması sağlanmış oldu.İster yönetici olun, ister normal bir kullanıcı, terminal'den
Kod:
tuptime
komutunu yazması yeterlidir.


Nasıl Kullanılır?

tuptime :


Önyükleme ve kapatma işlemleri sırasında sistem kısaca arar . Her durumda, araç sistem saatini not eder. Bu şekilde toplanan zaman damgalarından tuptime, sonuçta toplam çalışma zamanını ve diğer tüm değerleri hesaplar.Önyükleme ve kapatma zamanında tuptime'ın otomatik olarak başlamasını sağlamak tuptime-install.sh için bazı başlangıç komut dosyaları kurar. Örneğin, systemd ile bir sistem üzerinde karşılık gelen bir servis birimi kurar. Systemd'nin yanı sıra, kurulum komut dosyası SysVinit ve OpenRC'yi de destekler.Kurulum komut dosyası ek olarak bir cron işi kurar ve bu da tuptime'ın düzenli aralıklarla başlatılmasını sağlar. /var/lib/tuptime/tuptime.dbtuptime tarafından not edilen tüm zaman damgaları, varsayılan olarak aşağıda bulunan küçük bir SQLite veritabanında sona erer .

Zaman Ölçümü :​


Programı kurduktan sonra tuptime komutunu terminal üzerinden kullanarak, mevcut durumu sorgulayın. Araç zaten bazı temel bilgileri sağlıyor . En üstte; sistem başlatma sayısını gösterir. Yanında, yazılımın başlangıçları saymaya başlamasından bu yana saat ve tarihi görebilirsiniz. Tuptime, bu tarihten önceki olayları yakalamaz. Tam bir verisel data elde etmek için, sistem kurulumundan sonra programı mümkün olan en kısa sürede kurun.

terminal-1.png
Yukarıdaki ekran görüntüsünde;

Türkçesi :

Sistem başlatmaları: 1'den beri 09:15:37 20-04-2022(buradaki 1'den beri ifadesi, 1.log kaydı demek)

Sistem kapanmaları: 0 tamam + 0 kötü (açıldığından beri kapatılmamış, kötü'den kasıt zorlayıcı kapatma)
Sistem ömrü: 20s 56dk 53s (Sistemin açık kaldığı sürenin ömür türünden toplamı)

Sistem çalışma süresi: %100,0 = 20s 56dk 53s (%100 ifadesi, aniden bilinmeyen bir neden dolayı kapanma yok)
Sistem kesintisi: %0,0 = 0s (elektriksel kesilmeye maruz kalmamış)

Ortalama çalışma süresi: 20s 56dk 53s
Ortalama kesinti süresi: 0s

Şu anki çalışma süresi: 20s 56dk 53sn 09:15:37'den beri 20-04-2022
(20 Nisan 2022 Çarşamba saat 09:15'beri açık halde sistem)


Kurulumdan kısa bir süre sonra, tuptime size çok fazla bilgi veremez, ancak zamanla veriler, bilgisayarın davranışı hakkında size daha iyi bir izlenim vermeye başlar.

Ardından, tuptime, sistemin ne sıklıkta kapatıldığını söyler (Sistem kapanmaları). Kötü olarak etiketlenen kontrolsüz kapatmaların sayısına özellikle dikkat edin. Bu rakam hızla artarsa, örneğin dengesiz bir güç kaynağı gibi büyük bir sorun vardır. Sistem ömrü, tuptime'ın sistemi ne kadar süredir izlediğini gösterir. Dağıtımın kurulumundan hemen sonra tuptime kurduysanız, bu değer ilk açılıştan itibaren geçen süreye karşılık gelir.

Bunu, toplam sistem çalışma süresi (Sistem çalışma süresi) ve bilgisayarın kapatıldığı toplam süre (Sistemin kapalı kalma süresi) takip eder. Kesinti yüzdesi yüzde 50'yi aşarsa, bilgisayar çalıştığından daha uzun süre kapalı kalmıştır. Sistemin ortalama olarak ne kadar süre çalıştığı, Ortalama çalışma süresini izleyen değerle gösterilir. Benzer şekilde, Ortalama kapalı kalma süresi, bilgisayarın ortalama olarak ne kadar süreyle kapalı kaldığını gösterir. Nihai değer, son sistem başlangıcından bu yana geçen süredir (Mevcut çalışma süresi).

Görüntüleme seçenekleri (komutu -parametre ile kullanma)​


tuptime -l = Kısa Özet Bilgi Alma
terminal-2.png

tuptime -t -r = Tablosal Gösterim (En son veri üst'te, eski veriler alt'ta olacak şekilde)

terminal-3.png


Belirli Bir Tarih Aralığını Sorgulama :

Kalıp :

Bash:
tuptime --tsince=$(date --date="en eski tarih" +%s) --tuntil=$(date --date="en yeni tarih" +%s)

Burada geçen ;

en eski tarih / en yeni tarih : yıl-ay-gün formatında , en eski tarih = geçmiş zaman , en yeni tarih = şimdi yakın zaman olarak geçmiş'ten geleceğe doğru olmalıdır.

Örnek :

Diyelim ki ;

27 Ocak 2022 ile 31 Ağustos 2023 tarihleri arasında, sistemin açılış ve kapanış bilgisine ihtiyacımız olsun.O zaman tuptime komutunun parametre'lik kullanımı şöyle olmalıdır.

Bash:
tuptime --tsince=$(date --date="2022-01-27" +%s) --tuntil=$(date --date="2023-08-31" +%s)

terminal-4.png
Yukarıda bazı değerler sıfır'dır.Nedeni 27 Ocak 2022 geçmiş bir tarih olmasına rağmen, 31 Ağustos 2023 tarihi daha yaşanmadığından , (gelecek) sistem bazı değerleri sıfır'a eşitler.

Sistemin "n.log kaydı ile (n+1).log kaydı" Arasındaki "Sistem Açılış-Kapanış" Kayıtlarına Göz Atma

Kalıp :

Bash:
tuptime --since n.log kaydı --until (nt1).log kaydı

Örnek :

1.log kaydı ile 100.log kaydı arasında sistemin açılış-kapanış toplam verisi görüntülenmek istenirse;
terminal-5.png
Yukarıda , tuptime daha yeni kurulduğundan yalnızca 1.log kaydını toplam veri olarak gösteriyor.

Daha fazla detay​


terminal-6.png
terminal-7.png
Bash:
tuptime  -l -k -b -p

Diğer komutsal parametreler için ; TRWE_2012 tarafından çevrilen help.txt dosyasını inceleyiniz.

Bash:
   ----------------------
                            Tuptime Kılavuzu
                         ----------------------
                              sürüm 5.1.0
                                Ricardo F.
                               16/Ocak/2022



============
| Özet |
============

Tuptime, yeniden başlatmalar arasında tutarak sistemin tarihsel ve istatistiksel gerçek zamanını rapor eder.
Gerçekten de şunları yapabilir:

  - Sistem başlatmalarını sayın
  - İlk önyükleme zamanını kaydedin (kurulum zamanından beri)
  - Güzelce ve yanlışlıkla kapanmaları sayın
  - İlk açılıştan bu yana çalışma süresi ve kesinti yüzdesi
  - Birikmiş sistem çalışma süresi (çalışıyor ve uyku), kesinti ve toplam
  - Kullanılmış çekirdekleri ve önyükleme kimliklerini kaydedin
  - Mevcut çalışma süresini bildir
  - Sistem geçmişiyle birlikte biçimlendirilmiş tablo veya liste yazdırın
  - Belirli bir başlangıç veya zaman damgasından bu yana, o zamana kadar veya o zamana kadar dar raporlar
  - csv formatında çıktı



=================
| Önkoşullar |
=================

İşletim sistemleri:
   - Linux
   -BSD

Yazılım:
   - Python 3.x
   - Python modülleri (çoğu varsayılan olarak python çekirdeğinde bulunur):
       sys, os, argparse, yerel ayar, platform, sinyal, günlüğe kaydetme, sqlite3, datetime

Bir dağıtım kullanılıyorsa, her şey şu şekilde karşılanır:
    - Linux'ta: 'python' paketi >= 3.0
    - FreeBSD'de: 'python3' ve 'py36-sqlite3'



================
| Kurulum |
================

Linux sistemleri için:

   + Dağıtım deposundan:

       Debian - https://packages.debian.org/tuptime
       Ubuntu - https://packages.ubuntu.com/tuptime

           # uygun kurulum tuptime

       Fedora, EPEL - https://src.fedoraproject.org/rpms/tuptime

           # dnf tuptime'ı kurun
           # systemctl tuptime.service'i etkinleştir && systemctl tuptime.service'i başlat
           # systemctl tuptime-cron.timer'ı etkinleştir && systemctl tuptime-cron.timer'ı başlat


   + Bash betiğini kullanma:
      
       Kurulum komut dosyasını indirin ve çalıştırın:

           # bash <<(curl -Ls https://git.io/tuptime-install.sh)

   + Manuel kurulum:

       Depoyu klonla ve yürütülebilir dosyayı kopyala:

           # kurulum -m 755 tuptime/src/tuptime /usr/bin/tuptime

       _tuptime kullanıcısını ekleyin:

           # useradd --system --no-create-home --home-dir '/var/lib/tuptime' \
             --shell '/bin/false' --comment 'Tuptime yürütme kullanıcısı' _tuptime

       DB yolu oluşturmak için bir ayrıcalık kullanıcısıyla tuptime yürütün:

           # tuptime

       DB yolunun ve dosyasının sahibini değiştirin:

           # chown -R _tuptime:_tuptime /var/lib/tuptime

       cron dosyasını kopyalayın:

           # kurulum -m 644 tuptime/src/cron.d/tuptime /etc/cron.d/tuptime

       Systemd kullanıyorsa, hizmet dosyasını kopyalayın ve etkinleştirin:

           # kurulum -m 644 tuptime/src/systemd/tuptime.service /lib/systemd/system/tuptime.service
           # systemctl tuptime.service'i etkinleştir && systemctl tuptime.service'i başlat

           (Alternatif) Cron dosyası yerine systemd zamanlayıcı kullanma:

               # kurulum -m 644 tuptime/src/systemd/tuptime-cron.* /lib/systemd/system/
               # systemctl tuptime-cron.timer'ı etkinleştir && systemctl tuptime-cron.timer'ı başlat
               # rm /etc/cron.d/tuptime

       Veya eski bir RedHat sistemiyse veya türeviyse, init dosyasını kopyalayın:

           # install -m 755 tuptime/src/init.d/redhat/tuptime /etc/init.d/tuptime
           # chkconfig -- tuptime ekle && chkconfig tuptime açık

       Veya eski bir Debian sistemi veya türeviyse, init dosyasını kopyalayın:

           # kurulum -m 755 tuptime/src/init.d/debian/tuptime /etc/init.d/tuptime
           # update-rc.d tuptime varsayılanları
           # /etc/init.d/tuptime başlangıç

       Hepsi bu, tadını çıkar.


BSD sistemleri için:

   + FreeBSD'de ve paketleri veya bağlantı noktalarını kullanarak türevler:

           # pkg tuptime yükleyin
      
           (veya)
      
           # /usr/ports/sysutils/tuptime

       Önerilen cron girişini ekleyin ve rc'de etkinleştirin:

           # sysrc tuptime_enable=EVET
           # hizmet tuptime başlangıcı

   + FreeBSD, OpenBSD, NetBSD ve türevlerine manuel kurulum:

       Lütfen misc/bsd-manual-install.txt dosyasını okuyun.


OSX (Darwin) sistemi için kısmi destek:

   Tuptime, OSX ile uyumludur, ancak LaunchD ile entegrasyon
   tamamlamak. Lütfen misc/osx-notes.txt dosyasını okuyun


Python 2.7 hakkında not:

   Tuptime <= 3.5.0, Python 2.7 ile çalıştırılabilir.
   Bunu almak için Shebang satırını '#!/usr/bin/env python' olarak ayarlayın.



===========================
| Komut satırı parametreleri |
===========================

Bunlar komut satırı seçenekleridir, hiçbir yapılandırma dosyası kullanılmaz:

  -h, --help bu yardım mesajını göster ve çık
  -Bir BAŞLANGIÇ, --BAŞLANGIÇta
                        bu başlangıç numarasıyla sınır
  -b, --bootid önyükleme tanımlayıcısını gösterir
  -c, --csv csv çıktısı
  -d DATETM_FORMAT, --tarih DATETM_FORMAT
                        tarih saat/zaman damgası biçimi çıktısı
  -e ONDALIKLAR, --dec ONDALIKLAR
                        yüzde olarak ondalık sayı
  -f DOSYA, --filedb DOSYA
                        veritabanı dosyası (/var/lib/tuptime/tuptime.db)
  -g, --graceful zarif bir kapatma kaydet
  -i, --ters sayımda başlangıç numarasını ters çevir
  -k, --kernel çekirdek sürümünü göster
  -l, --list sistem ömrünü liste olarak sıralar
  -n, --noup değerleri DB'ye güncellemekten kaçınır
  -o TİP, --sipariş TÜRÜ
                        sıralama [u|r|s|e|d|k]
  -p, --power show güç durumları çalıştırma + uyku
  --pctl [1-99] ortalama üzerinden yüzdelik dilimini gösterir
  -r, --liste veya tablo çıktısında ters sırada
  -s, --saniye saniye ve çağ olarak çıktı süresi
  -S BAŞLANGIÇ, --başlangıçtan beri
                        bu başlangıç numarasından sınır
  -t, --table sistem ömrünü tablo olarak sıralar
  --tat TIMESTAMP sistem durumu, çağ zaman damgasında
  --tsince TIMESTAMP sınırı bu çağ zaman damgasından
  --tuntil TIMESTAMP sınırı bu çağ zaman damgasına kadar
  -U BAŞLANGIÇ, --BAŞLANGIÇA kadar
                        bu başlangıç numarasına kadar sınırla
  -v, --verbose ayrıntılı çıktı
  -V, --version sürümü göster
  -x, --silent değerleri çıktı olmadan DB'ye günceller


-A <BAŞLANGIÇ>, --at <BAŞLANGIÇ>
  Değerleri yalnızca bu başlangıç numarasıyla sınırlayın. (-t) tablosundan alın veya
  (-l) raporları listeler. Negatif değerlere izin verilir.

  Örnekler:
          çalışma zamanı -A 34
          tuptime - 22'de
          tuptime -l -A -1 # Son kaydı listele


-b, --önyükleme
  Çıktıya önyükleme tanımlayıcısı ekleyin.

  Örnekler:
         tuptime -b
         tuptime -t --bootid


-h, --yardım
  Komut satırı parametrelerinin hızlı bir referansını yazdırın.

  Örnekler:
         tuptime -h
         tuptime -- yardım


-c, --csv
  csv formatında rapor.

  Örnekler:
         tuptime --csv
         tuptime --csv -t


-d <DATETM_FORMAT>, --date=<DATETM_FORMAT>
  Tarih saat/zaman damgası biçimini değiştirin. Varsayılan olarak çıktı,
  yapılandırılmış sistem yerel ayarları. İzin verilen değerler:

        Yerel ayarın kısaltılmış adı olarak %a Weekday.
        Yerel ayarın tam adı olarak %A Weekday.
        0'ın Pazar ve 6'nın ondalık sayı olarak %w Hafta içi
            Cumartesi.
        %d Sıfır dolgulu ondalık sayı olarak ayın günü.
        %b Yerel ayarın kısaltılmış adı olarak Ay.
        %B Ay, yerel ayarın tam adı olarak.
        %m Ay, sıfır dolgulu ondalık sayı olarak.
        %y Sıfır dolgulu ondalık sayı olarak yüzyılsız yıl.
        %Y Yıl, ondalık sayı olarak yüzyıl.
        %H Saat (24 saatlik saat) sıfır dolgulu ondalık sayı olarak.
        %I Saat (12 saatlik saat) sıfır dolgulu bir ondalık sayı olarak.
        %p Yerel ayarın AM veya PM'ye eşdeğeri.
        Sıfır dolgulu bir ondalık sayı olarak %M Dakika.
        %S Saniye, sıfır dolgulu bir ondalık sayı olarak.
        %f Ondalık sayı olarak mikrosaniye, solda sıfır dolgulu.
        +HHMM veya -HHMM biçiminde %z UTC ofseti (boş dize
            nesne saftır).
        %Z Zaman dilimi adı (nesne safsa boş dize).
        %j Sıfır dolgulu ondalık sayı olarak yılın günü.
        %U Yılın Hafta sayısı (Pazar, haftanın ilk günü olarak)
            sıfır dolgulu ondalık sayı olarak. Yeni yılda tüm günler
            ilk Pazar gününden önceki hafta 0 olarak kabul edilir.
        %W Yılın Hafta sayısı (haftanın ilk günü olarak Pazartesi)
            ondalık sayı olarak. Yılbaşından önceki tüm günler
            İlk Pazartesi 0. hafta olarak kabul edilir.
        %c Yerel ayarın uygun tarih ve saat gösterimi.
        %x Yerel ayarın uygun tarih gösterimi.
        %X Yerel ayarın uygun zaman gösterimi.
        %% Bir değişmez '%' karakteri.


  Örnekler:
         tuptime -d '%X %x' # (Varsayılan)
         tuptime -d '%H:%M:%S %m-%d-%Y' # İngiliz stili
         tuptime -d '%H:%M:%S %d-%b-%Y' # İspanyol stili


-e, ONDALIKLAR, --dec ONDALIKLAR
  Ondalık uzunluğu yüzde olarak değiştirin. Sayı bu değere yuvarlanır.

  Örnekler:
         tuptime -e 7
         tuptime -- 9 Aralık


-f <DOSYA>, --filedb=<DOSYA>
  Alternatif bir veritabanı dosyası tanımlayın. Varsayılan şurada bulunur:
  '/var/lib/tuptime/tuptime.db'. Çevresel değişkene göre önceliklidir
  'TUPTIME_DBF'.

  Örnekler:
         tuptime -f /var/lib/tuptime/tuptime.db # (Varsayılan)
         tuptime -f /tmp/test1.db
         tuptime --filedb /tmp/test2.db

 
-g, --zarif
  Zamanı DB'ye zarif bir kapatma olarak kaydedin. Bu seçenek şu şekilde
  tuptime, iyi veya kötü bir kapatma olup olmadığını bilmek zorundadır. Bu, içinde kullanılır
  init.d ve systemd dosyaları kapatma işlemi sırasında.

  Örnekler:
         tuptime -g
         tuptime --zarif


-i, --invert
  Son önyüklemeden itibaren başlangıç numarasını ters sayarak yazdırın. sadece çalışır
  (-t), (-l) veya (--tat) seçenekleriyle birlikte. çıktısına eşit
  'journalctl --list-boots'.

  Örnekler:
         tuptime -t -i
         tuptime -tib
         tuptime -l --invert


-k, --çekirdek
  Çıktıya çekirdek bilgilerini ekleyin.

  Örnekler:
         tuptime -k
         tuptime -lk
         tuptime --çekirdek
         tuptime -t --çekirdek


-l, --liste
  Sistem ömrünü bir liste olarak numaralandırın.

  Örnekler:
         tuptime -l
         tuptime --liste


-n, --noup
  Mevcut btime, uptime, vb. ile DB'deki güncelleme değerlerinden kaçının.
  değiştirilmiş DB dosyalarını bildirirken.

  Örnekler:
         tuptime -n
         tuptime --noup


-o [u|r|s|e|d|k], --order=[u|r|s|e|d|k]
  Tablodan veya listeden numaralandırma çıktısını şu şekilde sıralayın:
    <u> çalışma süresi
    <r> çalışma zamanı
    <s> uyku zamanı
    <e> bitiş durumu
    <d> kesinti
    <k> çekirdek
  Bu nedenle, yalnızca (-t) veya (-l) seçenekleriyle birlikte çalışır.

  Örnekler:
         tuptime -t -oe
         tuptime -l -tamam
         tuptime -t -- sipariş u
         tuptime -l --sıra d


-p, --güç
  Karşılık gelen çalışma süresi yuvası için çalışan ve uykuda birikmiş süreyi yazdırın.
  Yalnızca Python >= 3.6'nın bu değerleri kaydedebileceğini unutmayın.

  Örnekler:
         tuptime -p
         tuptime -- güç
         tuptime -tp
         tuptime -l --güç


--pctl [1-99]
  Çalışma süresi ve kapalı kalma süresi ortalamasına uygulanan, geçirilen bağımsız değişkenden yüzdelik değeri yazdırın
  varsayılan çıktıdaki değerler. Üst, orta ve alt eşleştirme aralığı değerleri gösterilir.

  Örnekler:
         tuptime --pctl 95
         tuptime -p --pctl 50


-r, --ters
  Tablo veya liste çıktısı için ters sıra.

  Örnekler:
         tuptime -tr
         tuptime -lur
         tuptime -teo -- ters
         tuptime -l --ters


-s, --saniye
  Varsayılan insan tarafından okunabilir tarih/saat/zaman damgası stilini ve baskı sürelerini saniye cinsinden değiştirin
  ve çağdaki tarihler.

  Örnekler:
         tuptime -s
         tuptime --saniye


-S <BAŞLANGIÇ>, --<BAŞLANGIÇ>tan beri
  Sınır değerleri yalnızca bu başlangıç numarasından. (-t) tablosundan alın veya
  (-l) raporları listeler. Negatif değerlere izin verilir.

  Örnekler:
          çalışma zamanı -S 34
          tuptime -- 22'den beri
          tuptime -l -S -10

 
-t, --tablo
  Sistem ömrünü bir tablo olarak numaralandırın.

  Örnekler:
         tuptime -t
         tuptime --tablo


--tat
  Sistem durumunu belirli bir zaman damgasında, ekteki kayıt numarasında ve saatte rapor edin
  geçen ve eşleşen durumda kalan.

  Örnekler:
         tuptime --tat 1555280149
         tuptime --tat `tarih -d "1 gün önce" +%s`
         tuptime -cs --tat 1555281311


--tsince <TIMESTAMP>
  Verilen dönem zaman damgasından raporu sınırlayın. Negatif değerlere izin verilir.
  (-S) ve (-U) seçeneklerinin buna göre önceliği vardır.

  Örnekler:
         tuptime --tsince 1454998872
         tuptime --tsince `tarih -d "20-JAN-18" +%s`
         tuptime --tsince -31536000 # Bir yıl öncesinden beri


--tuntil <TIMESTAMP>
  Raporu belirtilen dönem zaman damgasına kadar sınırlayın. Negatif değerlere izin verilir.
  (-S) ve (-U) seçeneklerinin buna göre önceliği vardır.

  Örnekler:
         tuptime --tuntil 1454999619
         tuptime --tuntil `date -d "2018-01-20 16:21:42" +%s`
         tuptime --tuntil -2592000 # Bir ay öncesine kadar


-U <BAŞLANGIÇ>, --<BAŞLANGIÇ>a kadar
  Sınır değerleri yalnızca bu başlangıç numarasına kadar. (-t) tablosundan alın veya
  (-l) raporları listeler. Negatif değerlere izin verilir.

  Örnekler:
          çalışma zamanı -U 45
          tuptime -- 11'e kadar
          tuptime -l -U -10


-v, --ayrıntılı
  Tuptime'ın içindekiler hakkında bilgi yazdırın. Hata ayıklamak için iyidir
  değişkenleri nasıl alır.

  Örnekler:
         tuptime -v
         tuptime --verbose


-V, --versiyon:
  Sürüm numarasını yazdırın ve çıkın.

  Örnekler:
         tuptime -V
         tuptime --versiyon


-x, --sessiz
  Herhangi bir çıktı yazdırılır. Yalnızca değerleri güncelleyin ve diske kaydedin.

  Örnekler:
         tuptime -x
         tuptime --sessiz



=========================
| Ortam değişkenleri |
=========================

Desteklenen çevresel değişkenlerin listesi:

TUPTIME_DBF
  Alternatif bir veritabanı dosya yolu ayarlayın. -f, --filedb argümanı
  bu konuda öncelik.

  ksh / sh / bash için örnek:
         TUPTIME_DBF="/opt/tuptime.db" dışa aktar

  csh / tcsh için örnek:
         setenv TUPTIME_DBF /opt/tuptime.db

  systemd birimi için örnek:
         Ortam="TUPTIME_DBF='/opt/tuptime.db'"



======================
| Program yürütme |
======================

Bir zamanlama yürütmesine sahip olmak önemlidir. Eğer init veya systemd betikleri
gerektiği gibi kurulur, program yalnızca başlangıçta değerleri günceller ve
kapatma, ancak sistem başarısız olursa, askıda kalırsa veya her neyse, çalışma süresi
kaybolmak. Cron girişinin veya başka bir durumda systemd'nin
tuptime-cron.[timer|service] birimleri beklendiği gibi kurulur.

Neden tuptime-cron adında başka bir .service dosyasının kullanılması gerekiyor?
Varsayılan tuptime.service dosyası 'RemainAfterExit=true' seçeneğini kullanır ve
günümüzde systemd zamanlayıcı zaten çalışan bir hizmeti yeniden başlatamaz, bu nedenle bu
en iyi geçici çözümdür.

Varsayılan olarak, her ikisinin de 5 dakikalık programlanmış yürütmesi vardır. İndirmekten çekinmeyin
gereksinimleriniz dar ise bu değer.



==================
| Varsayılan çıktı |
==================

Sistem başlatmaları:
Kullanılabilir ilk zaman damgasından bu yana kaydedilen toplam sistem başlatma sayısı.

Sistem kapatmaları:
  Doğru veya yanlış yapılan toplam kapatma sayısı.

Sistem ömrü:
  Kullanılabilir ilk başlatma zaman damgasından bu yana zaman sayacı.

Sistem çalışma süresi:
Sistem kesintisi:
  Zaman yüzdesi ve zaman sayacı.

Ortalama çalışma süresi:
Ortalama kesinti:
  Ortalama süre ile zaman sayacı.

Mevcut çalışma süresi:
  Kayıtlı önyükleme zaman damgasından bu yana gerçek zaman sayacı ve tarih.


Sürüm 5 ve eşdeğer çıktıda kaldırıldı:

  En uzun çalışma süresi: tuptime -tor u | kafa -3
  En kısa çalışma süresi: tuptime -to u | kafa -3
  En büyük kesinti: tuptime -tor d | kafa -3
  En kısa kesinti süresi: tuptime -to d | kafa -3



======================================
| DB formatı sürümler arasında değişiyor |
======================================

2.x'ten 3.x'e:
    2.x'ten 3.0'a, sütunları yeniden sıralayın, kapalı zaman, bitiş ve kapalı kalma süresi eklendi. 3.0'dan 3.1'e,
    çekirdek sütunu eklendi. Taşıma komut dosyaları şurada bulunur:
    
    https://github.com/rfrail3/tuptime/blob/master/misc/cripts/db-tuptime-migrate-2.0-to-3.0.sh
    https://github.com/rfrail3/tuptime/blob/master/misc/cripts/db-tuptime-migrate-3.0-to-3.1.sh
 
3.x'ten 4.x'e:
    Eklenen rntime ve slptime kayıtları, ayrıca uptime, rntime, slptime, downtime artık tam sayılardır.
    Geçişler Tuptime'dan otomatik olarak yapılır. Ayrıca, geçiş komut dosyası
    şurada bulunur:

    https://github.com/rfrail3/tuptime/blob/master/misc/cripts/db-tuptime-migrate-3.1-to-4.0.sh
 
4.x'ten 5.x'e:
    Önyükleme kaydı eklendi. Geçişler Tuptime'dan otomatik olarak yapılır.
    Ayrıca, geçiş komut dosyası şu konumda bulunur:

    https://github.com/rfrail3/tuptime/blob/master/misc/cripts/db-tuptime-migrate-4.0-to-5.0.sh


==================
| Veritabanı Özellikleri |
==================

Tuptime, '/var/lib/tuptime/tuptime.db' içinde bulunan bir sqlite3 veritabanını kullanarak
aşağıdaki biçim:

tuptime (önyükleme metni,
         btime tamsayı,
         çalışma süresi tamsayı,
         rntime tamsayı,
         slptime tamsayı,
         offbtime tamsayı,
         son tam sayı,
         kesinti tamsayı,
         çekirdek metni)

bootid Benzersiz önyükleme tanımlayıcısı (varsa)
çağda btime Başlangıç zaman damgası
çalışma süresi Çalışma süresi saniye 
rntime Çalışma süresi saniye
slptime Uyku süresi saniye
offbtime Dönem içinde kapatma zaman damgası
endst Kapatma türü [1 tamam | 0 kötü]
duruş süresi Kesinti süresi saniye
çekirdek çekirdeğin adı

Başlangıç sırasının sayısı, işaretli tam sayı olan 'rowid'den çıkarılır.
sqlite içindeki tablosundaki satırı benzersiz bir şekilde tanımlayan anahtar.

Tüm değerleri sıfırlamak için veritabanı dosyasını silmeniz yeterlidir.

Doğrudan sorgulamak ve değiştirmek mümkündür, ancak herhangi birini kullanmak daha iyidir.
değiştirmek, katılmak veya kontrol etmek için 'misc/scripts' altında bulunan komut dosyaları.

Tam bir satır silinirse ve veritabanı tamamen yeniden oluşturulmazsa (vakum),
rowid, başlangıç numarasıyla ilgili gerçek bilgileri tutar. Tuptime hakkında reklam verecek
ayrıntılı mod etkinleştirildiyse.



============================
| Senkronizasyon tarihi ve saati hakkında |
============================

Bir sistemdeki tarih ve saat üzerindeki büyük atlamalar, özellikle
çalışma süresi değeri düşük olduğunda.

Donanım saati RTC'sine (sistem varsa) veya işletim sisteminin nasıl çalıştığına dikkat edin.
sistem başlangıçta saatini başlatır. Tuptime zaman damgasını kaydet
önyüklemeden sonraki ilk çalıştırmada sistem tarafından rapor edilir ve hesaplamak için kullanılır
önceki kapatma süresi ve mevcut çalışma süresi değeri. 'kim -b' komutu
aynı şeyi daha azını yap.

Sistem yanlış bir tarih saatiyle başlarsa ve bazı harici zaman eşitlemeleri
ntpd veya timesyncd gibi, önyüklemeden birkaç kez sonra başlangıç tarihi bildirildi
sistem tarafından değişebilir. Bu davranış aynı zamanda ayarlamalarla da ilgilidir.
adjtime(3) tarafından gerçekleştirilen, sanallaştırılmış ortamlarda çalışan sistemler, sunucular
yüksek yük veya yüksek disk G/Ç ile, jiffies / HZ'nin yanlış hesaplanması ve
kayıp kene sorunu.

Çalışma süresi değeri üzerinden hafif bir sapma telafi edilir, ancak çok yüksek bir sapma neden olabilir
anormal kayıtlar ve çıktılar, örneğin, Raspberry Pi'nin herhangi bir saati yoktur ve
1 Ocak 1970'den başlar. Olduğundan daha net olduğunda 0 kesinti süresi
fiziksel olarak imkansız, saatin geriye doğru büyük olduğundan daha yaygın bir gösterge
senkronize atlama.

Tuptime'ın zamana bağımlılığı olduğundan, Systemd hizmet birimleri time-sync.target'ı çeker
ve ondan önce sipariş edilir. Saatin senkronize edildiğini garanti etmediğini unutmayın,
sadece buna ihtiyacı var. Systemd'nin son sürümlerinde, geciktiren yeni bir birim var.
'systemd-time-wait-sync' senkronizasyonunda kalana kadar time-sync.target'a ulaşılıyor, ancak değil
günümüzde varsayılan olarak etkinleştirin.

Birkaç öneri/geçici çözüm şunlardır:

'systemd-time-wait-sync'i etkinleştirin. Ancak dikkatli olun çünkü yürütmeyi geciktirebilir
beklenenden daha fazla ve bir başlangıç kaybolabilir. Systemd'nin GitHub'ındaki açık sorunları kontrol edin.

Varsa 'systemd-timesyncd' kullanın (timedatectl set-ntp true), ayrıca
donanım saati olmayan sistemlerde zamanı tut. Başka bir zaman eşitleme hizmetini devre dışı bırakın
'ntp', 'chrony', 'openntpd' gibi, çoğu kullanımla ilgili sorunları önlemek için
'systemd-time-wait-sync' ile birlikte.

'ntp', 'chrony' veya 'openntpd' gibi herhangi bir zaman senkronizasyon hizmetini kullanın ve devre dışı bırakın
'systemd-timesyncd'. 'tuptime.service' adresindeki zaman eşitleme hizmeti gereksinimini ekleyin.
'After=' ve 'Wants=' satırlarının sonu.

'tuptime.unit' dosyasında bir zaman senkronizasyonunu zorlayın. '[Servis]' tanımının altına şunu ekleyin:
'ExecStartPre=/usr/bin/ntpdate pool.ntp.org' satırı

Sistemler, Raspberry Pi veya Beaglebone gibi tek kartlı bir bilgisayarsa, bir
RTC modülünü seçin ve uygun şekilde yapılandırın.

Systemd olmadan, bir ntp istemcisi kullanın ve tuptime'ın yürütülmesini zamana kadar geciktirin
senkronize edilir. Ayrıca, init betiğine ve cron satırına 'ntp-wait' eklenebilir.
tuptime yürütmesinden önce.

Deneme ve başarısızlık, çevre için doğru çözümü bulmanın en iyi yoludur.
hangi sistem çalışıyor.

Tuptime'ın referans aldığı drift değeri, 'tuptime -v' ayrıntılı modunda rapor edilir
'INFO:Drift over btime' satırında. +1 civarındaki değerler ortaktır ve şunlar olabilir:
normal olarak kabul edilir.

Systemd zamanlayıcı sorunları:

    https://github.com/systemd/systemd/issues/14061
    https://github.com/systemd/systemd/issues/8683
    https://github.com/systemd/systemd/issues/5097

İyi okumalar:

    https://tools.ietf.org/html/rfc1589
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=119971
    http://man7.org/linux/man-pages/man2/clock_gettime.2.html
    https://unix.stackexchange.com/questions/118631/how-can-i-measure-and-prevent-clock-drift
    VMware Sanal Makinelerinde Zaman İşleyişi (Belge)
    https://venam.nixers.net/blog/unix/2020/05/02/time-on-unix.html
    https://papers.freebsd.org/2002/phk-timecounters.files/timecounter.pdf



========================
| Tarih ve Dönem notları |
========================

--tsince, --tuntil ve --tat seçenekleri, hızlı bir şekilde epoch zaman damgası biçimini kullanır
referans burada bazı notlar:

Saniye denklikleri:
        1 yıl 31536000 saniye
        1 ay 2592000 saniye
        1 hafta 604800 saniye
        1 gün 86400 saniye
        1 saat 3600 saniye

İnsan tarih saatini çağa dönüştürün:
        tarih -d "18 Ocak 2018" +%s
        tarih -d "20-JAN-18" +%s
        tarih -d "2018-01-20 16:21:42" +%s
        tarih -d "2018-01-20 16:21:42 GMT+2" +%s
        tarih -d "3 hafta önce" +%s
        tarih -d "1 yıl önce" +%s
        tarih -d "şimdi" +%s

Çağı insan tarih saatine dönüştürün:
        tarih -d "@1516748400"

Önceki dönüşümler, FreeBSD kurulumunda "coreutils" ve çağrıda GNU tarihini kullanır
onları "gdate" ile.

Tarih saat giriş biçimleri hakkında daha fazla bilgi:
        erkek tarihi
        'https://www.gnu.org/software/coreutils/manual/html_node/
        Date-input-formats.html#Date-input-formats'



===========
| Uyarılar |
===========

Tuptime, 'root' kullanıcısı ile yürütülebilir, ancak bir
'_tuptime' gibi imtiyazsız kullanıcı, kurulum bölümünün kaçınılması gerektiğini gösterdiği gibi
güvenlik sorunları. Her halükarda, eğer veritabanı dosyası tarafından yazılabilir değilse
geçerli yürütme kullanıcısı, değişiklikler kaydedilmez. Bu durum örtülü
yazdırma değerleri için, ancak güncelleme veritabanı için değil, bu yüzden yazabilen bir kullanıcı
veritabanı dosyasında, genellikle init yöneticisinden tuptime yürütmelidir.
en azından açılışta ve kapanışta değerleri güncelleyin.

Çekirdek adı, tuptime değerlerinin her güncellenmesinde kaydedilir. ksplice ise
çekirdeği güncellemek için kullanılır, son çekirdek tüm zaman atamasına sahip olur
son sistem başladığından beri.

Tuptime, bir SQLite veritabanı tarafından desteklenmektedir. Son derece esnektir ancak başarısız olabilir
herhangi bir yazılım ve donanım düzeyinde meydana gelir ve bir veritabanı bozulmasına neden olur. Burada
bununla ilgili mükemmel bir belgedir https://www.sqlite.org/howtocorrupt.html

DB dosyasının başka bir yerde yedeği gerekiyorsa, Litestream'e bakın.
Bu, SQLite veritabanları için bir akış çoğaltma aracıdır,
Tutma zamanı. https://litestream.io/

Çalışma süresi referansı, önyüklemeden bu yana geçen duvar saati süresiyle bağlantılıdır,
çalışan etkili zaman. Çalışıyor (etkin süre) ve hazırda bekleme güç durumları
çalışma süresinin çocuklarıdır ve zaman aralıklarında birikmiş değerleri rapor eder,
bu, başlangıçtan kapanışa kadar sayılır.

Sistem yaz saati uygulamasına (DST) sahip bir saat dilimi yapılandırdıysa,
zaman değiştiğinde sorun yaşamamak için gerçek zaman saati (RTC)
yerel saate değil, eşgüdümlü evrensel saate (UTC) ayarlayın. ile kontrol edin
'timedatectl' komutu. DST değişiklikleri içeren raporlar tamamen doğrudur.
Sistemin geçerli yerel saat dilimi, yazdırılan tüm zaman damgaları için referanstır.
https://tldp.org/HOWTO/Clock-2.html

Linux sistemi, örneğin, tam güç kapatma veya yeniden başlatma gerçekleştirirse
"systemctl --force --force yeniden başlatma", üretme adımlarını izlemediğinden
temiz bir kapatma, "Bitiş durumu" kötü durumda kalır.

Aracın adı Total Uptime kelimelerinin kısaltılmasından gelmektedir.

Resmi Web Sayfası :
HTML:
https://github.com/rfrail3/tuptime/blob/master


 
Üst