Latest Entries »

Birden fazla bilgisayarda zaman senkronizasyonuna ihtiyaç duyduğumuzda işimize yarayacak en kolay ve basit çözüm NTP (Network Time Protocol) kullanmak olacaktır. Özellikle otomasyon sistemlerinde birden fazla PLC ve operatör paneli olması üretilen alarm ve proses değerlerinin zamansal önemini arttırmaktadır. Keza sunucu sistemlerinde de bu konu önemlidir. Bu iş için saat bilgisi merkezi bir sunucudan zamansal gecikmeler hesaba katılarak alınır.

NTP Client Ayarları

Windows sistemde bir bilgisayarı NTP üzerinden senkron etmek için regedit ile sistem ayarlarından aşağıdaki adımlar izlenir.

Saat alınacak adres “NtpServer” alanına yazılır. Mevcut Çalışma grubundan bir bilgisayarda NTP server kurulmuş ise onun ip adresi yazılabilir. Bunun için ilgili server da firewall ayarlarında Port 123’e izin verilmelidir.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
"NtpServer"="192.168.1.10"

NtpClient etkin hale getirilir. (“Enabled” değeri, onluk sistemde “1” yapılır)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"Enabled"=dword:00000001

Hangi zaman periyotlarında zaman senkronizasyonu yapılacağı saniye cinsinden belirlenir.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00093a80

Windows Time Servisi kapatılarak, otomatikte yeniden başlatılır.

NTP Server Ayarları

Aynı şekilde NTP client ayarları yapılarak doğru saat ayarları sağlanmış olur. Bunun üzerine kendi networkümüzdeki bilgisayarlar için NTP server kurulumu aşağıdaki adımlarla kurabiliriz.

“AnnounceFlags” değeri, onluk sistemde “5” yapılır.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"AnnounceFlags"=dword:00000005

“Enabled” değeri, onluk sistemde “1” yapılır.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
"Enabled"=dword:00000001

Windows Time Servisi kapatılarak, otomatikte yeniden başlatılır. Client bilgisayar isteklerine cevap verebilmek için Port 123 güvenlik ayarlarının yapılması gereklidir.

Mevcut rollere ekleme yaparak özelleştirme yapabiliriz. Bunun için yeterli haklara sahip kullanıcı ile aşağıdaki şekilde yeni bir rol ekleyelim.

use Database
db.createRole(
   {
     role: "StandartErisim",
     privileges: [
       { resource: { db: "istediginiz_db", collection: "istediginiz_col" }, actions: [ "find", "update", "insert" ] },
       { resource: { db: "", collection: "" }, actions: [ "find" ] }
     ],
     roles: []
   }
)

Kullanıcılara bazı rolleri vermek için ayrıca aşağıdaki gibi bir kullanım yapılabilir.

use DatabaseAdı
db.grantRolesToUser(
  "KullanıcıAdı",
  [
    { role: "readWrite", db: "DatabaseAdı" } ,
    { role: "readAnyDatabase", db:"admin" }
  ]
)

Verilen bir rolü geri almak için aşağıdaki yöntem izlenir.

use DatabaseAdı
db.revokeRolesFromUser(
    "KullanıcıAdı",
    [
      { role: "readWrite", db: "DatabaseAdı" }
    ]
)

Önce tüm sistem için etkin haklara sahip kullanıcı oluşturalım. Bunun için kurmuş olduğumuz MongoDB “bin” dizini içindeki “mongo.exe” kullanacağız. Aşağıdaki kodları “mongo.exe” uygulamasını çalıştırarak kullanıcı ekleyeceğiz.

use admin
db.createUser( {
    user: "UserAdmin",
    pwd: "şifreniz",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  });
db.createUser( {
    user: "Root",
    pwd: "şifreniz",
    roles: [ { role: "root", db: "admin" } ]
  });

Artık sistemi şifreli giriş için ayarlayıp tekrar başlatmalıyız. Önce sistemi durduralım.

net stop MongoDB

Daha önceden ayarlamış olduğumuz “mongod.cfg” dosyasında aşağıdaki eklemeyi yapacağız.

systemLog:
   destination: file
   path: "C:\\mongodb\\log\\mongod.txt"
   logAppend: true
storage:
   dbPath: "C:\\mongodb\\data"
   journal:
      enabled: true
net:
   bindIp: 127.0.0.1
   port: 27017
security:
   authorization: "enabled"

Artık sistemi yeniden başlatabiliriz.

net start MongoDB

Sisteme tekrardan bağlanmak için “mongo.exe” çalıştırdıktan sonra aşağıdaki kodları kullanırız.

use admin
db.auth("Root", "şifreniz");

Bağlantı adresi : http://www.mongodb.org/downloads

Zip uzantılı dosya istenilen yere çıkartılabilir yada kurulum dosyası ile MongoDB kurulur.

MongoDB için bir dizin belirlenir. Örnek C dizini olabilir. Zip dosyası içindeki “bin” klasörü buraya çıkartılır. Sırasıyla dizin yapısı aşağıdaki gibi olur.

C:\mongodb
C:\mongodb\bin
C:\mongodb\data
C:\mongodb\log
C:\mongodb\log\mongod.txt
C:\mongodb\mongod.cfg

Burada tamamen kendi isteğimize göre isimlendirme ve dizin seçimi yapabiliriz. “mongod.txt” ve “mongod.cfg” dosyalarını oluşturduk. “mongod.cfg” içine aşağıdaki tanımlamaları yaptık. İhtiyaca göre diğer ayarlara bakınız.

systemLog:
   destination: file
   path: "C:\\mongodb\\log\\mongod.txt"
   logAppend: true
storage:
   dbPath: "C:\\mongodb\\data"
   journal:
      enabled: true
net:
   bindIp: 127.0.0.1
   port: 27017

Zip uzantılı veya kurulum dosyası ile olsun “data”, “log” ve ayar dosyamızı oluşturduktan sonra windows servisini oluşturacağız.

sc.exe create MongoDB binPath= "\"C:\mongodb\bin\mongod.exe\" --service --config=\"C:\mongodb\mongod.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"

Artık Servisi çalıtırabiliriz.

net start MongoDB

İstersek durdurarak silebiliriz.

net stop MongoDB
sc.exe delete MongoDB

Archlinux güncellemesi

Uzun bir aradan sonra linux yüklü hard disk bölümü ayağa kaldırayım dedim. TTNET’in AKK uygulaması yüzünden 1Mbit bile olmayan hızımla tüm sistemi güncellemek pekte işime gelmiyor doğrusu (Yaklaşık 1,5GB veri).

Bazı paketleri güncellemeye başladım. Bunlardan ikisi de firefox ve chromium’du. Ne varki iki pakette linpng ve libffi paketlerinin hem güncel hemde önceki sürüm kütüphanelerini kullanıyordu.

libpng14.so.14, libffi.so.5 kütüphanelerini önceki versiyondan kopyalayarak /usr/lib klasöründe bırakın. Çünkü libpng15.so.15, libffi.so.6 kütüphanelerinden sembolik linkle sorun çözülmüyor.