Hangi Araçlara Sahip Olduğunuzu Bilin
Önceden her şeyi asla bilemezsiniz . Ama olabilir size çalışmak zorunda biliyorum. Ne kadar çok araç bilirseniz o kadar çok kullanabilirsiniz. Aracın ne olduğunu, ne yaptığını ve hakkında daha fazla bilgiyi nerede bulacağınızı biliyorsanız, başlamak için yeterince iyi.
man
Sayfaları gerçekten tanıyın . Onları ezberlemek zorunda değilsiniz, ancak aradığınızı nerede bulacağınızı bilmelisiniz. man
sözdizimi ayrıntılarını aramak için sayfalar Google'dan daha iyidir, çünkü belirli bir sisteme yüklenen sayfalar baktığınız sisteme karşılık gelen çeşitli tuhaflıkları veya sürüme özgü bilgileri yansıtır.
Çok kullanırsanız apache
, apache yapılandırma sözdizimini öğrenmenizi öneririm. Eğer kullanırsanız nginx
yerine, o yerine öğrenirler. Ama her iki durumda da, her ikisinin de ne olduğunu ve nasıl farklı olduklarını bilmelisiniz.
Sistem Araçları
Ne tür bir sysadmin çalışması yaparsanız yapın size yardımcı olacak birkaç araç vardır. Temel bilgileri, know varsayarsak gibi chmod
, mount
vb, burada bazı yöneticiler de yeterince anlamıyorum birkaç çok yararlı araçlardır:
- rsync
- sar / iostat (sysstat paketinin bir parçası)
- setfacl / getfacl (çoğu yönetici chmod / chown ile çalışmak zorunda olduğunuzu düşünür)
- kıvırmak ve / veya wget
- iptables
- kim / son / w
Komut satırı Ninja
Kabuk komut dosyası yazma konusunda sağlam bir anlayış, zor şeyleri hızlı ve kolay hale getirmek için harikalar yaratıyor diyebilirim. Sözdizimine bakmanız gerekiyorsa, o zaman hiç yapmayacaksınızdır, bu yüzden vaktinden önce bilmek kritik öneme sahiptir.
Örneğin mysqldump
, her biri sunucuya aktarılması gereken bir veritabanını temsil eden ".sql" dosyalarıyla dolu bir dizininiz olduğunu varsayalım. Bunların 35'ini manuel olarak içe aktarıyor musunuz? Kabuk komut dosyalarına makul derecede aşina iseniz, sadece bir komut yazmak ve daha sonra biraz kahve almak gerçekten hızlıdır:
Not: Okunabilirlik için ayrı satırlara ayırdım; noktalı virgül bırakırsanız, hepsini tek bir satıra koyabilirsiniz. Aksi takdirde, her satırın sonunda noktalı virgül gerekmez.
for FILE in *.sql; do
NAME=${FILE%.sql};
mysql -e "create database $NAME";
mysql $NAME < $FILE;
done
Ayrıca, fırçalamayı kullanmanızı öneririm sed
. Bunu her yerde düzenli ifadeler uygulamanın bir yolu olarak düşünün. http://www.grymoire.com/Unix/Sed.html
Telefon numaranızı değiştirdiğinizi ve tüm web sayfalarınızı buna göre güncellemeniz gerektiğini varsayalım (ve karışıklık olması durumunda yedek bir kopyasını kaydetmeniz gerekir).
sed -i.bak 's/555-1234/555-4321/' *.html
Yeni şeyler yapmak için mevcut araçların nasıl doğru bir şekilde zincirleneceğini bilmek de gerçekten yardımcı olabilir. Yukarıdakiyle aynı şeyi yapmanız gerektiğini, ancak alt dizinlerde de arama yapmanız gerektiğini varsayalım -
find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'
Biraz tecrübe sahibi olmak da faydalıdır perl
. Onunla ciddi programlar yazmanız gerekmeyebilir, ancak bu sed
ve awk
belki de biraz daha esnek bir çok şey yapmak için tasarlanmıştır .
Perl -e
seçeneği kullanılarak komut satırı sihrini yapmak için kullanılabilir . , Ve ile birlikte kullanmak -p
, gerçekten kullanışlı şeyler yapmak için hızlı bir şekilde basit filtreler yazabilirsiniz. Örneğin, Eylül ayında "/admin.php" adresine erişen herkesin IP adresini bulmanız gerektiğini varsayalım:-n
-i
perl -ne '
/([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log
Görmek? O kadar da kötü değildi. Sisadmin olarak, bu şeyleri nasıl yapacağınızı bilmeniz bekleniyor.