Python ile Google Drive’daki Dosyaları Listeleme Yöntemi

Python Kullanarak Google Drive içindeki bulunan bir klasördeki tüm dosyaları bir .txt kaydetmek istiyorsanız ağagıdaki kod tam size göre. Bunun için öncelikle google drive api aktif edip .json formatında bilgisayarınıza indirmeniz gerekiyor daha sonra.

pip install google-api-python-client google-auth google-auth-oauthlib google-auth-httplib2

ile gerekli kütüphaneleri yüklemelisiniz.

rom google.oauth2 import service_account
from google.oauth2 import service_account
from googleapiclient.discovery import build

# Kimlik bilgilerinizi ve klasör ID'nizi buraya girin
SERVICE_ACCOUNT_FILE = 'path/to/your/service_account.json'
FOLDER_ID = 'your_folder_id'
OUTPUT_FILE = 'download_links.txt'

# Google Drive API ile kimlik doğrulama
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
creds = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

service = build('drive', 'v3', credentials=creds)

# Dosyaların indirme linklerini bir txt dosyasına yaz
with open(OUTPUT_FILE, 'w') as file:
    page_token = None
    while True:
        results = service.files().list(
            q=f"'{FOLDER_ID}' in parents and mimeType != 'application/vnd.google-apps.folder'",
            fields="files(id, name, webViewLink, exportLinks), nextPageToken",
            pageSize=1000,
            pageToken=page_token
        ).execute()
        
        items = results.get('files', [])
        page_token = results.get('nextPageToken')
        
        if not items:
            file.write('Hiç dosya bulunamadı.\n')
            break
        
        for item in items:
            name = item.get('name')
            web_view_link = item.get('webViewLink')
            export_links = item.get('exportLinks', {})
            
            # İndirme bağlantısını belirle
            if web_view_link:
                link = web_view_link
            elif export_links:
                # Eğer exportLinks varsa, ilk export linkini kullan
                link = list(export_links.values())[0]
            else:
                link = 'Bağlantı mevcut değil'

            file.write(f'{name}: {link}\n')

        # Eğer bir sonraki sayfa varsa devam et
        if not page_token:
            break

print(f'İndirme bağlantıları "{OUTPUT_FILE}" dosyasına kaydedildi.')

Kimlik bilgilerinizi ve klasör ID’nizi doğru şekilde ayarladığınızdan emin olduktan sonra kodunuzu çalıştırabilirsiniz. Klasörünüzdeki dosyaların indirme linklerini alacaksınız.

 

Redis Verdiği Verileri Okuyalım.

İstatistikler ve Anlamları

  1. uptime_in_days: 0
    • Açıklama: Redis sunucusu çalışmaya başlamış ve çok yeni. Bu, Redis’in sıfır gün ile başladığını ve uzun süre çalışmadığını gösterir. Normal, eğer Redis yeni başlatıldıysa.
  2. tcp_port: 6379
    • Açıklama: Redis’in varsayılan dinleme portu. Normal.
  3. connected_clients: 11
    • Açıklama: Şu anda Redis’e bağlı olan toplam istemci sayısı. Bu değer, bağlantı sayısına göre normal veya yüksek olabilir. Çoğu durumda, 11 istemci bağlanmışsa bu, tipik bir değer olabilir.
  4. used_memory_rss: 81.67 MB
    • Açıklama: Redis’in işletim sistemi tarafından ayrılmış ve kullanılmakta olan toplam RAM miktarı. Bu, Redis’in fiziksel RAM kullanımını gösterir.
  5. used_memory: 75.82 MB
    • Açıklama: Redis’in şu anda tahsis ettiği bellek miktarı. used_memory_rss‘den biraz daha az, bu genellikle normaldir çünkü used_memory_rss fiziksel RAM’in tüm kullanımını yansıtırken used_memory Redis tarafından tahsis edilen hafıza miktarını gösterir.
  6. mem_fragmentation_ratio: 1.08
    • Açıklama: Bellek parçalanma oranı. 1.0 olan bir değer ideal olup, 1.08 gibi bir değer hafif bir parçalanmayı gösterir. Genellikle %10’un altındaki oranlar kabul edilebilir, ancak bu değer yüksekse bellek kullanımı optimize edilebilir.
  7. total_connections_received: 12
    • Açıklama: Redis’e bağlantı yapılmış toplam istemci sayısı. Bu, bağlantı sayısının toplamını yansıtır. Çoğu durumda bu sayı düşük olabilir, ancak istatistiklerin toplandığı süreye bağlıdır.
  8. total_commands_processed: 23687
    • Açıklama: Redis’in işlediği toplam komut sayısı. Bu, Redis’in yoğunluğunu ve işlem sayısını gösterir. Normal veya yüksek olabilir, ancak komut sayısı çok fazlaysa sunucunun performansını etkileyebilir.
  9. instantaneous_ops_per_sec: 1111
    • Açıklama: Sunucunun saniyede işlediği komut sayısı. Bu, Redis’in ne kadar hızlı çalıştığını gösterir. 1111 komut/saniye, yüksek bir işlem hacmini gösterir ve Redis’in hızlı çalıştığını belirtir.
  10. keyspace_hits: 12656
    • Açıklama: Başarıyla bulunan anahtarların sayısı. Bu değer, Redis’in veri arama başarısını gösterir.
  11. keyspace_misses: 5622
    • Açıklama: Bulunamayan anahtarların sayısı. Bu değer, anahtarların ne sıklıkla bulunamadığını gösterir. Yüksek bir değer, Redis veritabanında istenen anahtarların sık bulunamadığını gösterir.
  12. hit: 69.24
    • Açıklama: Anahtar bulma oranı (hit oranı). keyspace_hits / (keyspace_hits + keyspace_misses) olarak hesaplanır. %69.24, genel olarak iyi bir hit oranıdır, ancak veritabanının yapısına bağlı olarak bu oran değişebilir.
  13. latest_fork_usec: 0
    • Açıklama: Son fork işlemi için geçen mikro saniye sayısı. 0 olması, son fork işleminin hemen gerçekleştiğini veya çok hızlı olduğunu gösterir. Normal.

Genel Değerlendirme

  • Bellek Kullanımı: used_memory_rss ve used_memory arasında çok büyük bir fark yok. Bellek kullanımınız makul görünüyor, ancak mem_fragmentation_ratio‘nun 1.08 olması hafif bir bellek parçalanması olduğunu gösteriyor. Bu, uzun vadede bellek yönetimi ile ilgili ayarlamalar yapmanız gerekebileceğini gösterir.
  • Performans: instantaneous_ops_per_sec oldukça yüksek, bu da Redis’in yüksek performans sergilediğini gösteriyor. Bu, Redis’in büyük bir işlem hacmini işlediğini ve genellikle iyi performans sağladığını belirtir.
  • Anahtar Erişimi: keyspace_hits ve keyspace_misses oranları, veritabanı anahtarlarınızın erişilebilirliğini ve veritabanınızın performansını gösterir. %69.24 hit oranı oldukça iyi bir değerdir.

Sonuç olarak, Redis’in mevcut durumu oldukça iyi görünüyor. Ancak, bellek parçalanması oranını ve yüksek komut işleme oranını izlemeye devam etmeniz faydalı olabilir.

Openlitespeed tüm rpm’ler

Openlitespeed için yükleyebileceğiniz tüm modüller, RPM’ler

https://rpms.litespeedtech.com/centos/8/update/x86_64/RPMS/

Örnek Kurulumlar.

yum install lsphp81 lsphp81-common lsphp81-bcmath lsphp81-intl lsphp81-mysqlnd lsphp81-opcache lsphp81-pdo lsphp81-pecl-imagick lsphp81-pecl-memcached lsphp81-pecl-redis lsphp81-sodium lsphp81-xml lsphp81-zip

 

sudo apt install lsphp81*

 

PHP ile bir klasördeki .jpg dosyalarını .txt yazdırma

PHP ile bir klasördeki .jpg dosyalarını .txt yazdırma

 

<?php

// imageLarge klasörünün yolu
$klasor_yolu = 'imageLarge';

// Klasördeki tüm dosyaları alır
$dosyalar = scandir($klasor_yolu);

// .jpg uzantılı dosyaları filtreler
$jpg_dosyalari = array_filter($dosyalar, function($dosya) {
    return pathinfo($dosya, PATHINFO_EXTENSION) === 'jpg';
});

// Dosya adlarını bir txt dosyasına yazma
$dosya_adi = 'dosya_listesi.txt';
$dosya = fopen($dosya_adi, 'w');
foreach ($jpg_dosyalari as $dosya_adi) {
    fwrite($dosya, $dosya_adi . PHP_EOL);
}
fclose($dosya);

echo "Dosya adları $dosya_adi adlı dosyaya başarıyla yazıldı.";
?>

 

Smartmontools Disk sağlıgı

sudo yum update
sudo yum install smartmontools

Yükleme işlemi tamamlandıktan sonra, smartctl komutunu kullanarak disklerin SMART özelliklerini kontrol edebilirsiniz:

smartctl -a /dev/sdX

Burada “/dev/sdX” yerine kontrol etmek istediğiniz disk sürücüsünün adını belirtmelisiniz.

smartmontools yüklendikten sonra, smartctl komutunu başarıyla kullanabilir ve disk sağlık durumu hakkında bilgi alabilirsiniz.

Chrome console kullanarak 2 şer click yapma

Console kullanarak 2,4,6,8 alanlarındaki click alanlarına tıklama.

// Checkbox'ları seçmek için kullanılacak olan selector
var selector = "#manage_video > tbody > tr:nth-child({index}) > td:nth-child(1) > input[type=checkbox]";

// 2, 4, 6, ... sıralamasındaki checkbox'lar için döngü
for (var i = 2; i <= 100; i += 2) {
    // Her bir checkbox'ı seçmek için kullanılan tam selector
    var fullSelector = selector.replace("{index}", i);

    // Checkbox'ı seç
    var checkbox = document.querySelector(fullSelector);

    // Checkbox'ı hemen seç
    checkbox.click();
}