- Katılım
- 2 Mar 2022
- Konular
- 37
- Mesajlar
- 645
- Çözüm
- 6
- Online süresi
- 1mo 6d
- Reaksiyon Skoru
- 323
- Altın Konu
- 0
- Başarım Puanı
- 136
- MmoLira
- 8,465
- DevLira
- 75
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Bu Python kodu, belirli klasörlerde yapılan değişiklikleri izlemek ve bu değişiklikleri bir yedekleme dizininde saklamak için geliştirilmiştir. Kod, verilen klasörlerdeki dosyaların yeni, değiştirilmiş veya silinmiş olup olmadığını kontrol eder ve bu duruma göre yedekleme işlemi gerçekleştirir.
Kodun işleyişi şu şekildedir:
Bu süreç sayesinde, yeni bir sistem eklemeden önce mevcut sistemin sorunsuz halini yedekleyebilirsiniz. Böylelikle, yapılacak değişikliklerin ardından herhangi bir hata veya sorun oluşması durumunda, önceki sürüme geri dönebilir ve değişiklikleri analiz edebilirsiniz. Bu yaklaşım, sürekli olarak gereksiz dosya yedeklemenin önüne geçerek depolama ve zaman açısından önemli tasarruflar sağlar. Ayrıca, değişikliklerin detaylı bir kaydı tutulduğu için, geçmişte yapılan düzenlemeler üzerinde tam kontrol ve izlenebilirlik elde edersiniz. Bu da sistem yönetimini daha güvenilir ve profesyonel hale getirir.
Klasörler'de veya dosyalar da herhangi bir değişiklik olmaması durumunda ;
Herhangi bir klasörde veya dosyada değişiklik meydana geldiği durumda;
py çıktısı :
changed_files_log.txt dosya çıktısı :
[CODE lang="python" title="backupwindows.py"]import os
import shutil
from datetime import datetime
# Yedekleme dizini (değişiklikleri bu dizine yedekleyecek)
BACKUP_DIR = r"D:\backup"
# İzlenecek dizinler ve klasörler
WATCH_DIRS = [
(r"D:\1.klasor"), # siz belirleyin
(r"D:\1.klasor"), # siz belirleyin
]
def backup_changes(src_dir, folder_name, log_file_path):
src_path = os.path.join(src_dir, folder_name)
backup_path = os.path.join(BACKUP_DIR, folder_name)
changes_made = False
# Yedekleme dizini yoksa oluştur
if not os.path.exists(backup_path):
os.makedirs(backup_path)
# Mevcut dosyaları karşılaştır
for root, _, files in os.walk(src_path):
rel_path = os.path.relpath(root, src_path)
backup_root = os.path.join(backup_path, rel_path)
if not os.path.exists(backup_root):
os.makedirs(backup_root)
for file_name in files:
src_file = os.path.join(root, file_name)
backup_file = os.path.join(backup_root, file_name)
if (not os.path.exists(backup_file) or
os.path.getmtime(src_file) != os.path.getmtime(backup_file) or
os.path.getsize(src_file) != os.path.getsize(backup_file)):
shutil.copy2(src_file, backup_file)
changes_made = True
print(f"Yedeklendi: {src_file} -> {backup_file}")
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Yedeklendi: {src_file} -> {backup_file}\n")
for root, _, files in os.walk(backup_path):
rel_path = os.path.relpath(root, backup_path)
src_root = os.path.join(src_path, rel_path)
for file_name in files:
backup_file = os.path.join(root, file_name)
src_file = os.path.join(src_root, file_name)
if not os.path.exists(src_file):
os.remove(backup_file)
changes_made = True
print(f"Silindi: {backup_file}")
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Silindi: {backup_file}\n")
if not changes_made:
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - {folder_name} klasöründe herhangi bir değişiklik yapılmadı.\n")
print(f"{folder_name} klasöründe herhangi bir değişiklik yapılmadı.")
if __name__ == "__main__":
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"Yedekleme işlemi başlatıldı: {timestamp}")
log_file_path = os.path.join(BACKUP_DIR, 'changed_files_log.txt')
with open(log_file_path, 'w', encoding='utf-8') as log_file:
log_file.write(f"Yedekleme işlemi başlatıldı: {timestamp}\n")
for watch_dir, folder in WATCH_DIRS:
backup_changes(watch_dir, folder, log_file_path)
print("Yedekleme işlemi tamamlandı.")
[/CODE]
Kodun işleyişi şu şekildedir:
- Belirtilen kaynak klasörlerde (örneğin D:\1-99\01.Svn\2.Client) yapılan değişiklikler izlenir.
- Yeni eklenen veya değiştirilmiş dosyalar, yedekleme dizinine (D:\backup) kopyalanır.
- Kaynak klasörde silinmiş dosyalar varsa, bu dosyalar yedekleme dizininden de kaldırılır.
- Tüm değişiklikler (eklenen, değiştirilen ve silinen dosyalar), changed_files_log.txt dosyasına kaydedilir.
Bu süreç sayesinde, yeni bir sistem eklemeden önce mevcut sistemin sorunsuz halini yedekleyebilirsiniz. Böylelikle, yapılacak değişikliklerin ardından herhangi bir hata veya sorun oluşması durumunda, önceki sürüme geri dönebilir ve değişiklikleri analiz edebilirsiniz. Bu yaklaşım, sürekli olarak gereksiz dosya yedeklemenin önüne geçerek depolama ve zaman açısından önemli tasarruflar sağlar. Ayrıca, değişikliklerin detaylı bir kaydı tutulduğu için, geçmişte yapılan düzenlemeler üzerinde tam kontrol ve izlenebilirlik elde edersiniz. Bu da sistem yönetimini daha güvenilir ve profesyonel hale getirir.
Klasörler'de veya dosyalar da herhangi bir değişiklik olmaması durumunda ;
Herhangi bir klasörde veya dosyada değişiklik meydana geldiği durumda;
py çıktısı :
changed_files_log.txt dosya çıktısı :
[CODE lang="python" title="backupwindows.py"]import os
import shutil
from datetime import datetime
# Yedekleme dizini (değişiklikleri bu dizine yedekleyecek)
BACKUP_DIR = r"D:\backup"
# İzlenecek dizinler ve klasörler
WATCH_DIRS = [
(r"D:\1.klasor"), # siz belirleyin
(r"D:\1.klasor"), # siz belirleyin
]
def backup_changes(src_dir, folder_name, log_file_path):
src_path = os.path.join(src_dir, folder_name)
backup_path = os.path.join(BACKUP_DIR, folder_name)
changes_made = False
# Yedekleme dizini yoksa oluştur
if not os.path.exists(backup_path):
os.makedirs(backup_path)
# Mevcut dosyaları karşılaştır
for root, _, files in os.walk(src_path):
rel_path = os.path.relpath(root, src_path)
backup_root = os.path.join(backup_path, rel_path)
if not os.path.exists(backup_root):
os.makedirs(backup_root)
for file_name in files:
src_file = os.path.join(root, file_name)
backup_file = os.path.join(backup_root, file_name)
if (not os.path.exists(backup_file) or
os.path.getmtime(src_file) != os.path.getmtime(backup_file) or
os.path.getsize(src_file) != os.path.getsize(backup_file)):
shutil.copy2(src_file, backup_file)
changes_made = True
print(f"Yedeklendi: {src_file} -> {backup_file}")
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Yedeklendi: {src_file} -> {backup_file}\n")
for root, _, files in os.walk(backup_path):
rel_path = os.path.relpath(root, backup_path)
src_root = os.path.join(src_path, rel_path)
for file_name in files:
backup_file = os.path.join(root, file_name)
src_file = os.path.join(src_root, file_name)
if not os.path.exists(src_file):
os.remove(backup_file)
changes_made = True
print(f"Silindi: {backup_file}")
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Silindi: {backup_file}\n")
if not changes_made:
with open(log_file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - {folder_name} klasöründe herhangi bir değişiklik yapılmadı.\n")
print(f"{folder_name} klasöründe herhangi bir değişiklik yapılmadı.")
if __name__ == "__main__":
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"Yedekleme işlemi başlatıldı: {timestamp}")
log_file_path = os.path.join(BACKUP_DIR, 'changed_files_log.txt')
with open(log_file_path, 'w', encoding='utf-8') as log_file:
log_file.write(f"Yedekleme işlemi başlatıldı: {timestamp}\n")
for watch_dir, folder in WATCH_DIRS:
backup_changes(watch_dir, folder, log_file_path)
print("Yedekleme işlemi tamamlandı.")
[/CODE]
En Çok Reaksiyon Alan Mesajlar
Git icat edilmeden önce
git evet yıllardır kullanıyorum zaten fakat internetsiz ortamlarda bulunduğum çok oldu , sektör gereği bazı cihazları wifi ağına bağlayamıyoruz bazı konumlarda sadece metin2 olarak düşünmenizi istemem bir çok fason imalat sektöründe bu tarz script ve program kullanıyoruz bunu metin2 için neden olmasın diye paylaştığım bir olay sadeceBunun için oldukça gelişmiş bir yapı olan Git zaten yıllardır var, çok daha detaylı yedekleme, farklı sürümler olarak saklayabilme, birden fazla kişinin aynı anda aynı dosyalar üzerinde çalışabilmesi gibi bir çok özellik sunuyor, böyle bir nimetten faydalanmak yerine aynı işi çok daha ilkel şekilde yapan bir script kullanmak kendinize eziyet, Git sistemine geçin rahat edin derim, yine de paylaşım için teşekkürler.
- Katılım
- 7 May 2010
- Konular
- 10,579
- Mesajlar
- 58,614
- Çözüm
- 219
- Online süresi
- 10mo 29d
- Reaksiyon Skoru
- 16,721
- Altın Konu
- 444
- TM Yaşı
- 16 Yıl 1 Ay 2 Gün
- Başarım Puanı
- 691
- MmoLira
- 19,925
- DevLira
- 601
Paylaşım için teşekkürler.
- Katılım
- 21 May 2024
- Konular
- 1,450
- Mesajlar
- 2,451
- Çözüm
- 7
- Online süresi
- 3mo 25d
- Reaksiyon Skoru
- 2,564
- Altın Konu
- 1,027
- Başarım Puanı
- 274
- Yaş
- 51
- MmoLira
- 36,853
- DevLira
- 110
Güzel paylaşım,teşekkürler.
- Katılım
- 19 Şub 2019
- Konular
- 173
- Mesajlar
- 2,134
- Çözüm
- 26
- Online süresi
- 10mo 21d
- Reaksiyon Skoru
- 1,932
- Altın Konu
- 4
- Başarım Puanı
- 273
- MmoLira
- 4,234
- DevLira
- 97
Git icat edilmeden önce
- Katılım
- 30 Ocak 2020
- Konular
- 50
- Mesajlar
- 812
- Çözüm
- 6
- Online süresi
- 26d 15h
- Reaksiyon Skoru
- 735
- Altın Konu
- 1
- Başarım Puanı
- 184
- MmoLira
- 8,746
- DevLira
- 123
Bunun için oldukça gelişmiş bir yapı olan Git zaten yıllardır var, çok daha detaylı yedekleme, farklı sürümler olarak saklayabilme, birden fazla kişinin aynı anda aynı dosyalar üzerinde çalışabilmesi gibi bir çok özellik sunuyor, böyle bir nimetten faydalanmak yerine aynı işi çok daha ilkel şekilde yapan bir script kullanmak kendinize eziyet, Git sistemine geçin rahat edin derim, yine de paylaşım için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 6
- Görüntüleme
- 1K
- Cevaplar
- 19
- Görüntüleme
- 2K
- Cevaplar
- 7
- Görüntüleme
- 525
- Cevaplar
- 2
- Görüntüleme
- 266




