FreeBSD'nin önemli yönlerinden biri uygun sistem yapılandırmasıdır. Bu bölümde, bir FreeBSD sistemini ayarlamak için ayarlanabilen bazı parametreler de dahil olmak üzere FreeBSD yapılandırma sürecinin çoğu açıklanmaktadır.
Bu bölümü okuduktan sonra şunları bileceksiniz:
FreeBSD'de, cron(8) gibi dahil edilen hizmetlerin çoğu sistem başlatma komut dosyaları aracılığıyla başlatılır.
#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name=utility
rcvar=utility_enable
command="/usr/local/sbin/utility"
load_rc_config $name
#
# DO NOT CHAN#!/binAULT VALUES HERE
# SET THEM IN THE /etc/rc.conf FILE
#
utility_enable=${utility_enable-"NO"}
pidfile=${utility_pidfile-"/var/run/utility.pid"}
run_rc_command "$1"
Bu komut dosyası, sağlanan dosyanın sahte hizmetten sonra başlatılmasını sağlar. Ayrıca, işlem kimliğini (PID) ayarlamak ve izlemek için bir yöntem sağlar.utilityDAEMON
Bu uygulama daha sonra /etc/rc.conf dosyasına aşağıdaki satırı yerleştirebilir:
utility_enable="YES"
Bu yöntem, komut satırı bağımsız değişkenlerinin daha kolay değiştirilmesine, /etc/rc.subr dosyasında sağlanan varsayılan işlevlerin eklenmesine, rcorder(8) ile uyumluluğa olanak tanır ve rc.conf aracılığıyla daha kolay yapılandırma sağlar.
Bazı durumlarda, sistem hizmetlerini başlatmak için cron(8) kullanmak daha mantıklı olabilir. Bu yaklaşımın bir dizi avantajı vardır, çünkü cron(8) bu işlemleri crontab(5)'in sahibi olarak çalıştırır. Bu, normal kullanıcıların kendi uygulamalarını başlatmasına ve sürdürmesine olanak tanır.
Cron(8) özelliği, zaman belirtimi yerine kullanılabilir. Bu, normalde sistem başlatma sırasında cron(8) başlatıldığında işin çalışmasına neden olur.@reboot
İki farklı yapılandırma dosyası türü kullanılır: değiştirilmemesi gereken sistem crontab ve gerektiğinde oluşturulabilen ve düzenlenebilen kullanıcı crontabs. Bu dosyalar tarafından kullanılan biçim crontab(5) içinde belgelenmiştir. Sistem crontab, /etc/crontab biçimi, kullanıcı crontab'larında bulunmayan bir sütun içerir. Sistem crontab içinde, cron komutu bu sütunda belirtilen kullanıcı olarak çalıştırır. Bir kullanıcı crontab içinde, tüm komutlar crontab'ı oluşturan kullanıcı olarak çalışır.who
Kullanıcı crontab'ları, bireysel kullanıcıların kendi görevlerini zamanlamasına olanak tanır. Kullanıcı, sistem crontab'ında bulunmayan görevleri zamanlamak için kullanılabilecek bir kullanıcı crontab'ına da sahip olabilir.root
İşte crontab, /etc/crontab sisteminden örnek bir giriş:
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD$
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
% crontab -e
Bu, varsayılan metin düzenleyicisini kullanarak kullanıcının crontab dosyasını açacaktır. Bir kullanıcı bu komutu ilk kez çalıştırdığında, boş bir dosya açar. Bir kullanıcı bir crontab oluşturduktan sonra, bu komut bu dosyayı düzenlemek için açacaktır.
Ortam değişkenlerini ayarlamak ve crontab içindeki alanların anlamlarını hatırlamak için bu satırları crontab dosyasının en üstüne eklemek yararlıdır:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# Order of crontab fields
# minute hour mday month wday command
Ardından, çalıştırılacak her komut veya komut dosyası için, komutun çalıştırılacağı zamanı belirten bir satır ekleyin. Bu örnek, belirtilen özel Bourne kabuk betiğini her gün öğleden sonra ikide çalıştırır. Komut dosyasının yolu , içinde belirtilmediğinden, komut dosyasının tam yolu verilir
ATH
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Cron sekmesini düzenlemeyi tamamladığınızda, dosyayı kaydedin. Otomatik olarak kurulacak ve cron crontab'ı okuyacak ve cron işlerini belirtilen zamanlarda çalıştıracaktır. Cron işlerini bir crontab içinde listelemek için şu komutu kullanın:
% crontab -l
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Bir kullanıcı crontabındaki tüm cron işlerini kaldırmak için:
% crontab -r
remove crontab for dru? y
# service sshd restart
Bu yordam, çalışan bir sistemde hizmetleri başlatmak için kullanılabilir. Hizmetler, rc.conf(5) dosyasında belirtildiği gibi önyükleme zamanında otomatik olarak başlatılır. Örneğin, sistem başlangıcında natd(8)'i etkinleştirmek için /etc/rc.conf dosyasına aşağıdaki satırı ekleyin:
natd_enable="YES"
Bir satır zaten varsa, . rc(8) komut dosyaları, aşağıda açıklandığı gibi bir sonraki önyükleme sırasında bağımlı hizmetleri otomatik olarak yükler.natd_enable="NO"NOYES
rc(8) sistemi öncelikle sistem başlatma ve kapatma sırasında hizmetleri başlatmak ve durdurmak için tasarlandığından, , ve seçenekleri yalnızca uygun /etc/rc.conf değişkeni ayarlanmışsa eylemlerini gerçekleştirir. Örneğin, yalnızca /etc/rc.conf içinde ayarlanmışsa çalışır. /etc/rc.conf dosyasındaki ayarlardan bağımsız olarak to veya bir hizmete, bu komutların başına "one" eklenmelidir. Örneğin, geçerli /etc/rc.conf ayarından bağımsız olarak sshd(8)'i yeniden başlatmak için aşağıdaki komutu yürütün:startstoprestartsshd restartsshd_enableYESstartstoprestart
# service sshd onerestart
/etc/rc.conf dosyasında bir hizmetin etkin olup olmadığını kontrol etmek için, uygun rc(8) komut dosyasını . Bu örnek, /etc/rc.conf dosyasında sshd(8)'in etkin olup olmadığını denetler:rcvar
# service sshd rcvar
# sshd
#
sshd_enable="YES"
# (default: "")
Bir hizmetin çalışıp çalışmadığını belirlemek için, . Örneğin, sshd(8)'in çalıştığını doğrulamak için:status
# service sshd status
sshd is running as pid 433.
Bazı durumlarda, bir hizmet de mümkündür. Bu, tek bir hizmete sinyal göndermeye çalışır ve hizmeti yapılandırma dosyalarını yeniden yüklemeye zorlar. Çoğu durumda bu, hizmete bir sinyal göndermek anlamına gelir. Bu özellik desteği her hizmet için dahil değildir.reloadSIGHUP
rc (8) sistemi ağ hizmetleri için kullanılır ve aynı zamanda sistemin başlatılmasının çoğuna katkıda bulunur. Örneğin, /etc/rc.d/bgfsck komut dosyası yürütüldüğünde, aşağıdaki iletiyi yazdırır:
Starting background file system checks in 60 seconds.
Bu komut dosyası, yalnızca sistem başlatma sırasında gerçekleşen arka plan dosya sistemi denetimleri için kullanılır.
Birçok sistem hizmeti düzgün çalışması için diğer hizmetlere bağımlıdır. Örneğin, yp(8) ve diğer RPC tabanlı hizmetler, rpcbind(8) hizmeti başlatılıncaya kadar başlatılamayabilir. Bu sorunu gidermek için, bağımlılıklar ve diğer meta veriler hakkındaki bilgiler her başlangıç komut dosyasının en üstündeki açıklamalara eklenir. rcorder(8) programı, bağımlılıkları karşılamak için sistem hizmetlerinin çağrılması gereken sırayı belirlemek üzere sistem başlatma sırasında bu yorumları ayrıştırmak için kullanılır.
rc.subr(8) tarafından başlangıç komut dosyasının "etkinleştirilmesi" için gerekli olduğu için aşağıdaki anahtar sözcük tüm başlangıç komut dosyalarına eklenmelidir:
Ek bilgiler rc(8) ve rc.subr(8) dosyalarında bulunabilir. Özel rc(8) komut dosyalarının nasıl oluşturulacağına ilişkin yönergeler için bu makaleye bakın.
/etc/rc.conf dosyasındaki girişler /etc/defaults/rc.conf dosyasındaki varsayılan ayarları geçersiz kılar. Varsayılan ayarları içeren dosya düzenlenmemelidir. Bunun yerine, sisteme özgü tüm değişiklikler /etc/rc.conf dosyasında yapılmalıdır.
Yönetim yükünü azaltmak amacıyla site genelindeki yapılandırmayı sisteme özgü yapılandırmadan ayırmak için kümelenmiş uygulamalarda bir dizi strateji uygulanabilir. Önerilen yaklaşım, sisteme özgü yapılandırmayı /etc/rc.conf.local içine yerleştirmektir. Örneğin, /etc/rc.conf dosyasındaki şu girdiler tüm sistemler için geçerlidir:
sshd_enable="YES"
keyrate="fast"
defaultrouter="10.1.1.254"
/etc/rc.conf.local dosyasındaki bu girişler yalnızca bu sistem için geçerlidir:
hostname="node1.example.org"
ifconfig_fxp0="inet 10.1.1.1/8"
/etc/rc.conf dosyasını rsync veya kukla gibi bir uygulama kullanarak her sisteme dağıtın, /etc/rc.conf.local ise benzersiz kalır.
Upgrading the system will not overwrite /etc/rc.conf, so system configuration information will not be lost.
NIC destekleniyorsa, NIC için FreeBSD sürücüsünün adını belirleyin. Desteklenen yonga kümeleri hakkında bazı bilgiler içeren NIC sürücülerinin listesi için /usr/src/sys/conf/NOTES ve /usr/src/sys/arch/conf/NOTES dosyalarına bakın. Şüphe duyduğunuzda, desteklenen donanım ve sürücünün bilinen sınırlamaları hakkında daha fazla bilgi sağlayacağından sürücünün el kitabı sayfasını okuyun.
Yaygın NIC'lerin sürücüleri GENEL çekirdekte zaten mevcuttur, yani NIC'nin önyükleme sırasında incelenmesi gerekir. Sistemin önyükleme mesajları, metin içinde gezinmek için boşluk çubuğu yazılarak ve kullanılarak görüntülenebilir. Bu örnekte, sistemde dc(4) sürücüsünü kullanan iki Ethernet NIC bulunmaktadır:more /var/run/dmesg.boot
dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
miibus0: <MII bus> on dc0
bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: Ethernet address: 00:a0:cc:da:da:da
dc0: [ITHREAD]
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
miibus1: <MII bus> on dc1
bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1
bmtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: Ethernet address: 00:a0:cc:da:da:db
dc1: [ITHREAD]
NIC sürücüsü GENERIC'te yoksa, ancak bir sürücü varsa, NIC'nin yapılandırılabilmesi ve kullanılabilmesi için sürücünün yüklenmesi gerekir. Bu, iki yoldan biriyle gerçekleştirilebilir:
FreeBSD, Ağ Sürücüsü Arabirim Belirtimi (NDIS) için "yerel" destek sağlar. Bir Windows® XP sürücüsünü FreeBSD'de kullanılabilecek bir biçime dönüştürmek için kullanılabilecek ndisgen(8) içerir. ndis(4) sürücüsü Windows® XP ikili dosyası kullandığından, yalnızca i386™ ve amd64 sistemlerinde çalışır. PCI, CardBus, PCMCIA ve USB aygıtları desteklenir.
ndisgen(8) kullanmak için üç şeye ihtiyaç vardır:
Sürücü bit genişliği FreeBSD sürümüyle eşleşmelidir. FreeBSD/i386 için Windows® 32 bit sürücü kullanın. FreeBSD/amd64 için Windows® 64 bit sürücü gereklidir.
Bir sonraki adım, sürücü ikili dosyasını yüklenebilir bir çekirdek modülüne derlemektir. As , ndisgen(8) kullanın:root
# ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS
Bu komut etkileşimlidir ve gerektirdiği ek bilgileri ister. Geçerli dizinde yeni bir çekirdek modülü oluşturulacaktır. Yeni modülü yüklemek için kldload(8) kullanın:
# kldload ./W32DRIVER_SYS.ko
Oluşturulan çekirdek modülüne ek olarak, ndis.ko ve if_ndis.ko modülleri de yüklenmelidir. Bu, ndis(4)'e bağlı herhangi bir modül yüklendiğinde otomatik olarak gerçekleşmelidir. Değilse, aşağıdaki komutları kullanarak bunları el ile yükleyin:
# kldload ndis
# kldload if_ndis
İlk komut ndis(4) miniport sürücü sarmalayıcısını yükler ve ikincisi oluşturulan NIC sürücüsünü yükler.
Herhangi bir yükleme hatası olup olmadığını görmek için dmesg(8) öğesini kontrol edin. Her şey yolunda giderse, çıktı aşağıdakine benzer olmalıdır:
ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps
Buradan, ndis0 diğer NIC gibi yapılandırılabilir.
Sistemi ndis(4) modüllerini önyükleme zamanında yükleyecek şekilde yapılandırmak için, oluşturulan modülü (W32DRIVER_SYS.ko) /boot/modules konumuna kopyalayın. Ardından, /boot/loader.conf dosyasına aşağıdaki satırı ekleyin:
W32DRIVER_SYS_load="YES"
Bu bölümü okuduktan sonra şunları bileceksiniz:
- rc.conf yapılandırmasının ve /usr/local/etc/rc.d başlangıç komut dosyalarının temelleri.
- Ağ kartı nasıl yapılandırılır ve test edilir.
- Ağ cihazlarında sanal konaklar nasıl yapılandırılır.
- /etc içindeki çeşitli yapılandırma dosyaları nasıl kullanılır?
- FreeBSD'yi sysctl(8) değişkenleri kullanarak ayarlama.
- Disk performansını ayarlama ve çekirdek sınırlamalarını değiştirme.
- UNIX® ve FreeBSD temellerini (FreeBSD Temelleri) anlayın.
- Çekirdek yapılandırması ve derlemenin temellerini öğrenin (FreeBSD Çekirdeğini Yapılandırma).
13.2. Hizmetlerin Başlatılması
Birçok kullanıcı, Bağlantı Noktaları Koleksiyonu'ndan FreeBSD'ye üçüncü taraf yazılımı yükler ve sistem başlatıldıktan sonra yüklü hizmetlerin başlatılmasını gerektirir. Mail/postfix veya www/apache22 gibi hizmetler, sistem başlatma sırasında başlatılabilecek birçok yazılım paketinden sadece ikisidir. Bu bölümde, üçüncü taraf yazılımlarını başlatmak için kullanılabilen yordamlar açıklanmaktadır.FreeBSD'de, cron(8) gibi dahil edilen hizmetlerin çoğu sistem başlatma komut dosyaları aracılığıyla başlatılır.
13.2.1. Genişletilmiş Uygulama Yapılandırması
Artık FreeBSD rc.d'yi içerdiğinden, uygulama başlangıcının yapılandırılması daha kolaydır ve daha fazla özellik sağlar. FreeBSD'de Hizmetleri Yönetme'de tartışılan anahtar sözcükler kullanılarak, uygulamalar diğer bazı hizmetlerden sonra başlayacak şekilde ayarlanabilir ve başlangıç komut dosyasındaki sabit kodlanmış bayraklar yerine /etc/rc.conf üzerinden fazladan bayraklar geçirilebilir. Temel komut dosyası aşağıdakine benzer görünebilir:#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name=utility
rcvar=utility_enable
command="/usr/local/sbin/utility"
load_rc_config $name
#
# DO NOT CHAN#!/binAULT VALUES HERE
# SET THEM IN THE /etc/rc.conf FILE
#
utility_enable=${utility_enable-"NO"}
pidfile=${utility_pidfile-"/var/run/utility.pid"}
run_rc_command "$1"
Bu komut dosyası, sağlanan dosyanın sahte hizmetten sonra başlatılmasını sağlar. Ayrıca, işlem kimliğini (PID) ayarlamak ve izlemek için bir yöntem sağlar.utilityDAEMON
Bu uygulama daha sonra /etc/rc.conf dosyasına aşağıdaki satırı yerleştirebilir:
utility_enable="YES"
Bu yöntem, komut satırı bağımsız değişkenlerinin daha kolay değiştirilmesine, /etc/rc.subr dosyasında sağlanan varsayılan işlevlerin eklenmesine, rcorder(8) ile uyumluluğa olanak tanır ve rc.conf aracılığıyla daha kolay yapılandırma sağlar.
13.2.2. Hizmetleri Başlatmak için Hizmetleri Kullanma
Diğer hizmetler inetd(8) kullanılarak başlatılabilir. inetd(8) ile çalışma ve yapılandırması "The inetd Super-Server" bölümünde ayrıntılı olarak açıklanmıştır.Bazı durumlarda, sistem hizmetlerini başlatmak için cron(8) kullanmak daha mantıklı olabilir. Bu yaklaşımın bir dizi avantajı vardır, çünkü cron(8) bu işlemleri crontab(5)'in sahibi olarak çalıştırır. Bu, normal kullanıcıların kendi uygulamalarını başlatmasına ve sürdürmesine olanak tanır.
Cron(8) özelliği, zaman belirtimi yerine kullanılabilir. Bu, normalde sistem başlatma sırasında cron(8) başlatıldığında işin çalışmasına neden olur.@reboot
13.3. Cron Yapılandırması(8)
FreeBSD'deki en kullanışlı yardımcı programlardan biri cron'dur. Bu yardımcı program arka planda çalışır ve yürütülecek görevler için /etc/crontab'ı düzenli olarak kontrol eder ve özel crontab dosyaları için /var/cron/tabs'ı arar. Bu dosyalar, cron'un belirtilen zamanlarda çalıştığı görevleri zamanlamak için kullanılır. Bir crontab içindeki her girdi, çalıştırılacak bir görevi tanımlar ve cron işi olarak bilinir.İki farklı yapılandırma dosyası türü kullanılır: değiştirilmemesi gereken sistem crontab ve gerektiğinde oluşturulabilen ve düzenlenebilen kullanıcı crontabs. Bu dosyalar tarafından kullanılan biçim crontab(5) içinde belgelenmiştir. Sistem crontab, /etc/crontab biçimi, kullanıcı crontab'larında bulunmayan bir sütun içerir. Sistem crontab içinde, cron komutu bu sütunda belirtilen kullanıcı olarak çalıştırır. Bir kullanıcı crontab içinde, tüm komutlar crontab'ı oluşturan kullanıcı olarak çalışır.who
Kullanıcı crontab'ları, bireysel kullanıcıların kendi görevlerini zamanlamasına olanak tanır. Kullanıcı, sistem crontab'ında bulunmayan görevleri zamanlamak için kullanılabilecek bir kullanıcı crontab'ına da sahip olabilir.root
İşte crontab, /etc/crontab sisteminden örnek bir giriş:
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD$
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
Karakterle başlayan satırlar yorumlardır. İstenen bir eylemin ne ve neden gerçekleştirildiğini hatırlatmak için dosyaya bir yorum yerleştirilebilir. Yorumlar bir komutla aynı satırda olamaz, aksi takdirde komutun bir parçası olarak yorumlanırlar; yeni bir çizgide olmalılar. Boş satırlar yoksayılır.#[/TD#minute [TR] [TD] | Eşittir () karakteri, herhangi bir ortam ayarını tanımlamak için kullanılır. Bu örnekte, ve . Bu öğe atlanırsa, cron varsayılan Bourne kabuğunu kullanır. Atlanırsa, tam yol çalıştırılacak komuta veya komut dosyasına verilmelidir.=SHELLPATHSHELLPATH | |
Bu satır, bir sistem crontab'ında kullanılan yedi alanı tanımlar: , , , , , , , ve . Alan, belirtilen komutun çalıştırılacağı dakika cinsinden zamandır, belirtilen komutun çalıştırılacağı saattir, ayın günüdür, aydır ve haftanın günüdür. Bu alanlar, yirmi dört saatlik saati temsil eden sayısal değerler veya o alanın tüm değerlerini temsil eden a , olmalıdır. Alan yalnızca sistem crontab içinde bulunur ve komutun hangi kullanıcı olarak çalıştırılacağını belirtir. Son alan, yürütülecek komuttur.minutehourmdaymonthwdaywhocommandminutehourmdaymonthwday*who | ||
Bu girdi, bu cron işi için değerleri tanımlar. , ardından birkaç karakter daha gelir, her saatin her beş dakikasında, haftanın her günü ve gününde, her ayın çağrıldığını belirtir. Komutlar herhangi bir sayıda anahtar içerebilir. Ancak, birden çok satıra uzanan komutların ters eğik çizgi "\" devam karakteriyle kırılması gerekir.*/5*/usr/libexec/atrunroot |
13.3.1. Kullanıcı Crontab Oluşturma
Bir kullanıcı crontab oluşturmak için düzenleyici modunda çağırın:crontab% crontab -e
Bu, varsayılan metin düzenleyicisini kullanarak kullanıcının crontab dosyasını açacaktır. Bir kullanıcı bu komutu ilk kez çalıştırdığında, boş bir dosya açar. Bir kullanıcı bir crontab oluşturduktan sonra, bu komut bu dosyayı düzenlemek için açacaktır.
Ortam değişkenlerini ayarlamak ve crontab içindeki alanların anlamlarını hatırlamak için bu satırları crontab dosyasının en üstüne eklemek yararlıdır:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# Order of crontab fields
# minute hour mday month wday command
Ardından, çalıştırılacak her komut veya komut dosyası için, komutun çalıştırılacağı zamanı belirten bir satır ekleyin. Bu örnek, belirtilen özel Bourne kabuk betiğini her gün öğleden sonra ikide çalıştırır. Komut dosyasının yolu , içinde belirtilmediğinden, komut dosyasının tam yolu verilir
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Özel bir komut dosyası kullanmadan önce, yürütülebilir olduğundan emin olun ve cron tarafından ayarlanan sınırlı ortam değişkenleri kümesiyle test edin. Yukarıdaki cron girdisini çalıştırmak için kullanılacak ortamı çoğaltmak için şunu kullanın: env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/dru LOGNAME=dru /usr/home/dru/bin/mycustomscript.sh Cron tarafından ayarlanan ortam crontab(5) içinde tartışılmıştır. Komut dosyalarının cron ortamında düzgün çalışıp çalışmadığını denetlemek, joker karakterler kullanarak dosyaları silen herhangi bir komut içeriyorsa özellikle önemlidir. |
% crontab -l
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Bir kullanıcı crontabındaki tüm cron işlerini kaldırmak için:
% crontab -r
remove crontab for dru? y
13.4. FreeBSD'de Hizmetleri Yönetme
FreeBSD, sistem başlatma sırasında ve hizmetleri yönetmek için rc(8) başlangıç komut dosyaları sistemini kullanır. /etc/rc.d dosyasında listelenen komut dosyaları, , ve hizmet(8) seçenekleriyle kontrol edilebilen temel hizmetler sağlar. Örneğin, sshd(8) aşağıdaki komutla yeniden başlatılabilir:startstoprestart# service sshd restart
Bu yordam, çalışan bir sistemde hizmetleri başlatmak için kullanılabilir. Hizmetler, rc.conf(5) dosyasında belirtildiği gibi önyükleme zamanında otomatik olarak başlatılır. Örneğin, sistem başlangıcında natd(8)'i etkinleştirmek için /etc/rc.conf dosyasına aşağıdaki satırı ekleyin:
natd_enable="YES"
Bir satır zaten varsa, . rc(8) komut dosyaları, aşağıda açıklandığı gibi bir sonraki önyükleme sırasında bağımlı hizmetleri otomatik olarak yükler.natd_enable="NO"NOYES
rc(8) sistemi öncelikle sistem başlatma ve kapatma sırasında hizmetleri başlatmak ve durdurmak için tasarlandığından, , ve seçenekleri yalnızca uygun /etc/rc.conf değişkeni ayarlanmışsa eylemlerini gerçekleştirir. Örneğin, yalnızca /etc/rc.conf içinde ayarlanmışsa çalışır. /etc/rc.conf dosyasındaki ayarlardan bağımsız olarak to veya bir hizmete, bu komutların başına "one" eklenmelidir. Örneğin, geçerli /etc/rc.conf ayarından bağımsız olarak sshd(8)'i yeniden başlatmak için aşağıdaki komutu yürütün:startstoprestartsshd restartsshd_enableYESstartstoprestart
# service sshd onerestart
/etc/rc.conf dosyasında bir hizmetin etkin olup olmadığını kontrol etmek için, uygun rc(8) komut dosyasını . Bu örnek, /etc/rc.conf dosyasında sshd(8)'in etkin olup olmadığını denetler:rcvar
# service sshd rcvar
# sshd
#
sshd_enable="YES"
# (default: "")
![Ekran Alıntısı SSHD FTP.PNG Ekran Alıntısı SSHD FTP.PNG](/proxy.php?image=https%3A%2F%2Fdosya.turkmmo.com%2F2023%2F09%2F154707_6adf6a07d54e95544d49ef5703be2cad.png&hash=02bd90bd63718ee941968c9039bea360)
Satır, bir konsoldan değil, yukarıdaki komuttan çıktıdır.# sshdroot |
# service sshd status
sshd is running as pid 433.
![Ekran Alıntısı TELNET FTP.PNG Ekran Alıntısı TELNET FTP.PNG](/proxy.php?image=https%3A%2F%2Fdosya.turkmmo.com%2F2023%2F09%2F154709_097a72d409651310ec5df7267a208ef1.png&hash=cfcde8dce6b0b06434bda8b6ef8a53dc)
Bazı durumlarda, bir hizmet de mümkündür. Bu, tek bir hizmete sinyal göndermeye çalışır ve hizmeti yapılandırma dosyalarını yeniden yüklemeye zorlar. Çoğu durumda bu, hizmete bir sinyal göndermek anlamına gelir. Bu özellik desteği her hizmet için dahil değildir.reloadSIGHUP
rc (8) sistemi ağ hizmetleri için kullanılır ve aynı zamanda sistemin başlatılmasının çoğuna katkıda bulunur. Örneğin, /etc/rc.d/bgfsck komut dosyası yürütüldüğünde, aşağıdaki iletiyi yazdırır:
Starting background file system checks in 60 seconds.
Bu komut dosyası, yalnızca sistem başlatma sırasında gerçekleşen arka plan dosya sistemi denetimleri için kullanılır.
Birçok sistem hizmeti düzgün çalışması için diğer hizmetlere bağımlıdır. Örneğin, yp(8) ve diğer RPC tabanlı hizmetler, rpcbind(8) hizmeti başlatılıncaya kadar başlatılamayabilir. Bu sorunu gidermek için, bağımlılıklar ve diğer meta veriler hakkındaki bilgiler her başlangıç komut dosyasının en üstündeki açıklamalara eklenir. rcorder(8) programı, bağımlılıkları karşılamak için sistem hizmetlerinin çağrılması gereken sırayı belirlemek üzere sistem başlatma sırasında bu yorumları ayrıştırmak için kullanılır.
rc.subr(8) tarafından başlangıç komut dosyasının "etkinleştirilmesi" için gerekli olduğu için aşağıdaki anahtar sözcük tüm başlangıç komut dosyalarına eklenmelidir:
- PROVIDE: Bu dosyanın sağladığı hizmetleri belirtir.
- REQUIRE: Bu hizmet için gerekli olan hizmetleri listeler. Bu anahtar sözcüğü içeren komut dosyası, belirtilen hizmetlerden sonra çalışır.
- BEFORE: Bu hizmete bağlı hizmetleri listeler. Bu anahtar sözcüğü içeren komut dosyası, belirtilen hizmetlerden önce çalışır.
Ek bilgiler rc(8) ve rc.subr(8) dosyalarında bulunabilir. Özel rc(8) komut dosyalarının nasıl oluşturulacağına ilişkin yönergeler için bu makaleye bakın.
13.4.1. Sisteme Özel Yapılandırmayı Yönetme
Sistem yapılandırma bilgilerinin asıl konumu /etc/rc.conf şeklindedir. Bu dosya çok çeşitli yapılandırma bilgileri içerir ve sistemi yapılandırmak için sistem başlangıcında okunur. rc* dosyaları için yapılandırma bilgileri sağlar./etc/rc.conf dosyasındaki girişler /etc/defaults/rc.conf dosyasındaki varsayılan ayarları geçersiz kılar. Varsayılan ayarları içeren dosya düzenlenmemelidir. Bunun yerine, sisteme özgü tüm değişiklikler /etc/rc.conf dosyasında yapılmalıdır.
Yönetim yükünü azaltmak amacıyla site genelindeki yapılandırmayı sisteme özgü yapılandırmadan ayırmak için kümelenmiş uygulamalarda bir dizi strateji uygulanabilir. Önerilen yaklaşım, sisteme özgü yapılandırmayı /etc/rc.conf.local içine yerleştirmektir. Örneğin, /etc/rc.conf dosyasındaki şu girdiler tüm sistemler için geçerlidir:
sshd_enable="YES"
keyrate="fast"
defaultrouter="10.1.1.254"
/etc/rc.conf.local dosyasındaki bu girişler yalnızca bu sistem için geçerlidir:
hostname="node1.example.org"
ifconfig_fxp0="inet 10.1.1.1/8"
/etc/rc.conf dosyasını rsync veya kukla gibi bir uygulama kullanarak her sisteme dağıtın, /etc/rc.conf.local ise benzersiz kalır.
Upgrading the system will not overwrite /etc/rc.conf, so system configuration information will not be lost.
Both /etc/rc.conf and /etc/rc.conf.local are parsed by sh(1). This allows system operators to create complex configuration scenarios. Refer to rc.conf(5) for further information on this topic. |
13.5. Ağ Arabirim Kartlarının Kurulması
Ağ arabirim kartı (NIC) eklemek ve yapılandırmak, herhangi bir FreeBSD yöneticisi için ortak bir görevdir.13.5.1. Doğru Sürücüyü Bulma
İlk olarak, NIC'nin modelini ve kullandığı çipi belirleyin. FreeBSD çok çeşitli NIC'leri destekler. NIC'nin desteklenip desteklenmediğini görmek için FreeBSD sürümünün Donanım Uyumluluk Listesi'ni kontrol edin.NIC destekleniyorsa, NIC için FreeBSD sürücüsünün adını belirleyin. Desteklenen yonga kümeleri hakkında bazı bilgiler içeren NIC sürücülerinin listesi için /usr/src/sys/conf/NOTES ve /usr/src/sys/arch/conf/NOTES dosyalarına bakın. Şüphe duyduğunuzda, desteklenen donanım ve sürücünün bilinen sınırlamaları hakkında daha fazla bilgi sağlayacağından sürücünün el kitabı sayfasını okuyun.
Yaygın NIC'lerin sürücüleri GENEL çekirdekte zaten mevcuttur, yani NIC'nin önyükleme sırasında incelenmesi gerekir. Sistemin önyükleme mesajları, metin içinde gezinmek için boşluk çubuğu yazılarak ve kullanılarak görüntülenebilir. Bu örnekte, sistemde dc(4) sürücüsünü kullanan iki Ethernet NIC bulunmaktadır:more /var/run/dmesg.boot
dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
miibus0: <MII bus> on dc0
bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: Ethernet address: 00:a0:cc:da:da:da
dc0: [ITHREAD]
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
miibus1: <MII bus> on dc1
bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1
bmtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: Ethernet address: 00:a0:cc:da:da:db
dc1: [ITHREAD]
NIC sürücüsü GENERIC'te yoksa, ancak bir sürücü varsa, NIC'nin yapılandırılabilmesi ve kullanılabilmesi için sürücünün yüklenmesi gerekir. Bu, iki yoldan biriyle gerçekleştirilebilir:
- En kolay yol, kldload(8) kullanarak NIC için bir çekirdek modülü yüklemektir. Ayrıca sürücüyü önyükleme sırasında otomatik olarak yüklemek için /boot/loader.conf dosyasına uygun satırı ekleyin. Tüm NIC sürücüleri modül olarak kullanılamaz.
- Alternatif olarak, NIC desteğini statik olarak özel bir çekirdeğe derleyin. Özel çekirdek yapılandırma dosyasına hangi satırın ekleneceğini belirlemek için /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES ve sürücünün el kitabı sayfasına bakın. Çekirdeği yeniden derleme hakkında daha fazla bilgi için, FreeBSD Çekirdeğini Yapılandırma konusuna bakın. NIC önyükleme sırasında algılandıysa, çekirdeğin yeniden derlenmesi gerekmez.
13.5.1.1. Windows® NDIS Sürücülerini Kullanma
Ne yazık ki, sürücüleri için açık kaynak topluluğuna şematik sağlamayan birçok satıcı var, çünkü bu tür bilgileri ticari sırlar olarak görüyorlar. Sonuç olarak, FreeBSD ve diğer işletim sistemlerinin geliştiricilerine iki seçenek bırakılmıştır: sürücüleri uzun ve zahmetli bir tersine mühendislik süreciyle veya Microsoft® Windows® platformları için mevcut sürücü ikili dosyalarını kullanarak geliştirmek.FreeBSD, Ağ Sürücüsü Arabirim Belirtimi (NDIS) için "yerel" destek sağlar. Bir Windows® XP sürücüsünü FreeBSD'de kullanılabilecek bir biçime dönüştürmek için kullanılabilecek ndisgen(8) içerir. ndis(4) sürücüsü Windows® XP ikili dosyası kullandığından, yalnızca i386™ ve amd64 sistemlerinde çalışır. PCI, CardBus, PCMCIA ve USB aygıtları desteklenir.
ndisgen(8) kullanmak için üç şeye ihtiyaç vardır:
- FreeBSD çekirdek kaynakları.
- .SYS uzantılı bir Windows® XP sürücü ikilisi.
- Windows® XP sürücüsü yapılandırma dosyası . INF uzantısı.
Sürücü bit genişliği FreeBSD sürümüyle eşleşmelidir. FreeBSD/i386 için Windows® 32 bit sürücü kullanın. FreeBSD/amd64 için Windows® 64 bit sürücü gereklidir.
Bir sonraki adım, sürücü ikili dosyasını yüklenebilir bir çekirdek modülüne derlemektir. As , ndisgen(8) kullanın:root
# ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS
Bu komut etkileşimlidir ve gerektirdiği ek bilgileri ister. Geçerli dizinde yeni bir çekirdek modülü oluşturulacaktır. Yeni modülü yüklemek için kldload(8) kullanın:
# kldload ./W32DRIVER_SYS.ko
Oluşturulan çekirdek modülüne ek olarak, ndis.ko ve if_ndis.ko modülleri de yüklenmelidir. Bu, ndis(4)'e bağlı herhangi bir modül yüklendiğinde otomatik olarak gerçekleşmelidir. Değilse, aşağıdaki komutları kullanarak bunları el ile yükleyin:
# kldload ndis
# kldload if_ndis
İlk komut ndis(4) miniport sürücü sarmalayıcısını yükler ve ikincisi oluşturulan NIC sürücüsünü yükler.
Herhangi bir yükleme hatası olup olmadığını görmek için dmesg(8) öğesini kontrol edin. Her şey yolunda giderse, çıktı aşağıdakine benzer olmalıdır:
ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps
Buradan, ndis0 diğer NIC gibi yapılandırılabilir.
Sistemi ndis(4) modüllerini önyükleme zamanında yükleyecek şekilde yapılandırmak için, oluşturulan modülü (W32DRIVER_SYS.ko) /boot/modules konumuna kopyalayın. Ardından, /boot/loader.conf dosyasına aşağıdaki satırı ekleyin:
W32DRIVER_SYS_load="YES"
![resim](https://i.hizliresim.com/3bbdve2.png)