Crontab ile Otomatik Logları temizle

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 269

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,

Bu kategoride küçük bir katkım olmasını istedim. Yardımcı olabildiğim kadar olacağım.
Quest Hakkında birkaç bilgi vereyim. Ve kapatılan bugları söyleyeyim.

Bu sistem Depocuda satılan Altın Bar iteminin Lua dosyasıdır. Yani Depocudan altın bar aldığınızda sağ tıklayarak açacağınız sistemde kodlanmıştır. İteme sağ tıkladığınızda sizin lua dosyasında belirttiğiniz miktarda para verir ve itemi siler.

Kapatılan bugları söylemek yerine size çalışma mantığını söyleyeyim.

Sağ tıkladığınız anda ilk önce item var mı yok mu onu kontrol eder. Var ise "Barı çıkartmak istiyor musunuz" diye sorar. Evet'e tıkladığınızda barı tekrar kontrol eder. Var ise oyuncunun para miktarını kontrol eder. Eğer oyuncunun envanterindeki para çıkardıktan sonra 2t yi geçiyorsa barı açmaz. Geçmiyorsa açar.

Vakit kaybetmeden size dosyayı paylaşayım
:)


Kod:
quest alikrbk_bar begin     state start begin         when 80005.use begin         if pc . count_item ( 80005 ) < 1 then              say_title("Hey ".. pc.get_name() ..".")             say ( "Bar Kaybolmus!" )             end             say_title("Hey ".. pc.get_name() ..".")             say ( "100 Milyon Yang'ı envanterine çıkartacaksın!" )             say ( "Dikkatli Ol Envanterine İyi Bak Paran 2t den Fazla Olacak Şekile Bozdurma!" )             say ( "Aksi Taktirde Giden Paranızdan Sorumlu Değiliz..." )             local s = select ( "Evet" , "Hayır" )                  if s == 1 then                     local kalan= pc.count_item(80005)                     if kalan <= 0 then                      say_title("Hey ".. pc.get_name() ..".")                     say ( "Bar Kaybolmus!" )                     elseif kalan >= 0 then                         local anlikyang = pc.get_gold()                         local barmiktari = 100000000                         local maxyang = 2000000000                         if anlikyang+barmiktari >= maxyang then                         say_title("Kontrol:")                         say("")                         say("Barı açarsan paran 2t den fazla")                         say("olacağı için çıkarılamadı.")                             else                         say_reward ( "Başarıyla Çıkardın!" )                          pc.change_money( barmiktari )                         pc.removeitem("80005", 1)                      end                 end                 else                 end         end     end end

local barmiktari = 100000000 -- BARI ÇIKARDIKTAN SONRA VERECEĞİ YANG MİKTARI
local maxyang = 2000000000 -- OYUNUN MAX YANG MİKTARI
80005 İSE İTEM KODUDUR.

Nasıl Yüklenir ?

Kodları boş bir dosyaya yapıştırdıktan sonra dosyaadi.lua olarak kaydediyorsunuz.
Sunucuya SFTP'den bağlantı yapıp dosyayı /usr/game/share/locale/turkey/quest dizini içerisine atıyorsunuz.
Putty ile giriş yapın ve :
cd /usr/game/share/locale/turkey/quest
./qc dosyaadi.lua

yazın. Hata alırsanız :

pc.get_gold fonksiyonunu quest_functions içine atın.

Oyundan Görüntü :

VVllMV.jpg



Dosya olarak paylaşılmadığı için virüstotale gerek görmedim. Ama çok isterseniz ;



Buyrun :)

İyi Forumlar
Crontab ile Otomatik Log Temizleme

Metin2 Lobby olarak sunucu yönetimi sırasında logların düzenli tutulması oldukça önemlidir. Özellikle Metin2 sunucularında quest sistemlerinin çalışması esnasında üretilen loglar zamanla sistem performansını etkileyebilir. Bu nedenle logların otomatik olarak temizlenmesi, sunucu sağlığı açısından kritik öneme sahiptir.

Log Dosyalarının Önemi
Metin2 sunucularında, quest sistemleri, kullanıcı etkileşimleri, hata kayıtları gibi birçok işlem log dosyalarında tutulur. Bu loglar hem hata analizi hem de sunucu performans izleme açısından oldukça faydalıdır. Ancak uzun süreli kullanımda log dosyaları büyüyerek disk alanını doldurabilir. Özellikle logların düzenli temizlenmemesi durumunda sunucu kararsız hale gelebilir.

Crontab Nedir?
Crontab, Linux sistemlerinde belirli zamanlarda otomatik olarak komut çalıştırmamızı sağlayan bir araçtır. Örneğin belirli bir saatte log temizliği yapmak istiyorsanız crontab kullanabilirsiniz. Bu sayede manuel müdahaleye gerek kalmadan sistem otomatik olarak çalışır.

Crontab Kullanımı
Crontab kullanmak için terminal üzerinden şu komutu girin:
Kod:
crontab -e

Bu komut sayesinde crontab ayarlarını düzenleyebilirsiniz. Örnek bir cron görevi şu şekildedir:
Kod:
0 2 * * * /path/to/cleanup_script.sh

Bu satır, her gün sabah 2:00'de belirtilen betiği çalıştırır. Burada zamanlamayı istediğiniz gibi özelleştirebilirsiniz.

Otomatik Log Temizleme Betiği Oluşturmak
Log temizlemek için basit bir bash betiği oluşturabilirsiniz. Örneğin:
Kod:
#!/bin/bash[BR][/BR][BR][/BR]LOG_DIR='/home/user/logs'[BR][/BR]find $LOG_DIR -name '*.log' -mtime +7 -delete

Bu betik, 7 günden daha eski log dosyalarını siler. Böylece disk dolmasının önüne geçilir.

Metin2 Sunucularında Log Yönetimi
Metin2 sunucularında loglar genellikle quest hataları, item kullanımı, NPC etkileşimleri gibi pek çok şeyi içerir. Bu logları düzenli temizlemek, hem performansı artırır hem de hata takibini kolaylaştırır. Quest geliştirme veya debug işlemleri sırasında bu loglar oldukça faydalıdır.

Crontab ile Güvenli Log Temizliği
Log temizliği yapılırken dikkat edilmesi gereken bazı konular vardır. Örneğin logları tamamen silmek yerine arşivlemek daha güvenli olabilir. Crontab ile logları önce sıkıştırıp sonra silmek, hata analizleri için yedek bırakmanızı sağlar.

Zamanlanmış Görevlerin Kontrolü
Cron görevlerini kontrol etmek için şu komutu kullanabilirsiniz:
Kod:
crontab -l

Bu komut, mevcut cron görevlerinizi listeler. Hatalı zamanlamaları düzeltmek için tekrar crontab -e komutunu kullanabilirsiniz.

Sonuç
Crontab kullanarak log temizleme işlemlerini otomatikleştirmek, Metin2 sunucularınızın sağlıklı ve verimli çalışmasını sağlar. Özellikle quest sistemlerinin yoğun olduğu sunucularda log yönetimi kritik öneme sahiptir. Doğru yapılandırılmış bir crontab görevi, hem zaman kazandırır hem de sunucu performansını korumanızı sağlar.

Not: Log temizliği yaparken önemli hata kayıtlarını kaybetmemeye dikkat edin. Gereksiz logları silmeden önce yedek almanız önerilir.


Automatic Log Cleanup with Crontab

Metin2 Lobby managing servers, keeping logs organized is very important. Especially on Metin2 servers, logs generated during quest system operations can affect system performance over time. Therefore, automatically cleaning logs is critical for server health.

Importance of Log Files
On Metin2 servers, many operations such as quest systems, user interactions, and error records are stored in log files. These logs are very useful for both error analysis and monitoring server performance. However, in long-term usage, log files can grow and fill up disk space. If logs are not cleaned regularly, the server may become unstable.

What is Crontab?
Crontab is a tool that allows you to automatically run commands at specific times on Linux systems. For example, if you want to clean logs at a certain time every day, you can use crontab. This way, without manual intervention, the system runs automatically.

Using Crontab
To use crontab, enter the following command from the terminal:
Kod:
crontab -e

This command allows you to edit crontab settings. An example cron job looks like this:
Kod:
0 2 * * * /path/to/cleanup_script.sh

This line executes the specified script every day at 2:00 AM. You can customize the timing as needed.

Creating an Automatic Log Cleanup Script
You can create a simple bash script to clean logs. For example:
Kod:
#!/bin/bash[BR][/BR][BR][/BR]LOG_DIR='/home/user/logs'[BR][/BR]find $LOG_DIR -name '*.log' -mtime +7 -delete

This script deletes log files older than 7 days. Thus, preventing disk space issues.

Log Management on Metin2 Servers
On Metin2 servers, logs usually contain information about quest errors, item usage, NPC interactions, etc. Regularly cleaning these logs increases performance and simplifies error tracking. During quest development or debugging, these logs are highly beneficial.

Secure Log Cleaning with Crontab
There are some things to consider when cleaning logs. For instance, archiving logs instead of deleting them entirely might be safer. With crontab, compressing logs before deletion helps keep backups for error analysis purposes.

Checking Scheduled Tasks
You can check your cron jobs using the following command:
Kod:
crontab -l

This command lists your current cron jobs. To correct any incorrect schedules, use the crontab -e command again.

Conclusion
Automating log cleanup tasks with crontab ensures your Metin2 servers operate smoothly and efficiently. Log management is especially critical on servers with intensive quest systems. Properly configured cron jobs save time and help maintain server performance.

Note: When cleaning logs, be careful not to lose important error records. It is recommended to take backups before deleting unnecessary logs.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt