Apa yang harus diketahui oleh administrator Linux dengan kepala?

16

Saya bukan administrator sistem, tetapi saya memiliki pengetahuan yang bagus tentang Linux, Unix, Windows dan perangkat keras.

Apa topik yang paling dibutuhkan yang seorang Administrator Linux harus hafal (pada titik mampu memperbaiki, mengatur, menyelesaikannya tanpa harus membaca manual di max; memeriksa halaman manual yang umum dengan distribusi apa pun )?

The FOKUS Saya ingin ditetapkan untuk ini akan menjadi dari jaringan perusahaan untuk administrasi server yang mungkin memiliki beberapa fitur yang sama akan sebagian besar waktu memiliki beberapa yang berbeda juga. Seperti misalnya Anda tidak akan selalu melihat server FTP untuk server perusahaan tetapi mungkin melihat Samba sebagian besar waktu ...

Saya tidak mengatakan "buku yang harus Anda baca" atau hal-hal seperti itu, tetapi saya maksudkan fitur yang paling diperlukan yang mungkin akan diperlukan dalam kehidupan sehari-hari Anda sebagai administrator Linux.

Suka:

  1. Kernel, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Squid, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. mengikat
  7. Masalah sehari-hari dihadapi
  8. Apa fitur yang paling sering Anda gunakan di siang hari

Ini bukan daftar pesanan atau yang paling dibutuhkan. Itu hanya nama sesuatu yang muncul di kepalaku.

PS: Saya sudah memiliki pengetahuan dasar, tetapi saya tidak punya pengalaman sehari-hari di lapangan. Saya memiliki server, membuat beberapa jaringan, dan sebagainya. Lebih lanjut saya bahkan memiliki beberapa pengetahuan mendalam di beberapa bagiannya. Saya hanya ingin memperbarui ini di sini, seperti saya katakan ini lebih dari DAFTAR HARIAN SEHARI-HARI SYSADMIN LINUX.

Saya akan sangat menghargai jika kalian / cewek bisa daftar topik dan misalnya bidang mana di dalamnya yang paling sering digunakan atau penting untuk dihafal.

Jika Anda yakin pertanyaan saya tidak layak, beri tahu saya tentang hal itu dan saya akan menghapusnya sendiri atau jika Anda merasa cocok tetapi perlu kembali bekerja lagi, beri tahu saya juga dan saya akan mencoba yang terbaik.

Prix
sumber

Jawaban:

19

Apakah Anda benar-benar yakin peduli dengan hal-hal sehari-hari? Secara pribadi saya pikir hal-hal yang harus Anda hafal adalah hal-hal yang perlu Anda lakukan ketika ada sesuatu yang pecah, dan semua orang bernapas di leher Anda untuk mendapatkan jaringan kembali. Hal-hal sehari-hari cenderung bervariasi berdasarkan apa yang dilakukan kotak Linux Anda di jaringan Anda.

Saya pikir ada beberapa keterampilan yang cukup penting.

  • Anda harus dapat mengkonfigurasi jaringan menggunakan alat cli seperti ifconfig, route, dan ip.

    • Beberapa kali seorang klien menelepon mengatakan kotak Linux mereka gagal. Saya minta mereka mem-boot livecd. Tetapi server berada di jaringan tanpa DHCP (itu adalah DHCP). Setelah sistem di-boot, saya perlu memandu mereka memulai jaringan dan SSH sehingga saya bisa terhubung dari jauh dan membantu mereka mendiagnosis dan memperbaiki apa yang rusak.
    • Anda mungkin berada pada titik di mana Anda tidak dapat mengakses Internet, dan Anda harus tahu cara online.
  • Saya pikir Anda harus tahu bagaimana melakukan backup penuh sistem menggunakan tar, rsync, atau dd. Jika Anda tidak tahu cara melakukan backup dan mengembalikan hal-hal yang Anda hampir pasti tidak boleh menyentuh sistem. Anda harus benar-benar memastikan cadangan dibuat sebelum membuat perubahan sistem.

  • Saya pikir Anda harus tahu cara mengakses sistem file dari livecd di server Anda. Ini berarti Anda harus tahu cara mengaktifkan drive berbasis LVM, dan Perangkat Lunak RAID, mengakses informasi partisi, dan memasang sistem file.

    • Jika server Anda tidak bisa di-boot, Anda mungkin perlu mengakses sistem file dan memperbaiki sesuatu. Akan sangat menyakitkan mencoba mencari cara untuk benar-benar me-mount sesuatu dalam keadaan darurat. Bersiaplah sebelumnya.
  • Anda harus cukup terbiasa dengan proses boot untuk dapat mengubah hal-hal saat boot. Sebagian besar sistem menggunakan GRUB, tetapi Anda mungkin mengalami LILO.
    • Yang penting, ketahui bagaimana mem-boot ke berbagai run-level seperti pengguna tunggal.
  • Saya pikir Anda harus memiliki setidaknya pengetahuan tentang bagaimana melakukan beberapa penangkapan dasar dengan tcpdump dan dapat membaca hasilnya. Semua fitur GUI yang bagus di Wireshark bagus, tetapi jika ada yang rusak Anda mungkin sebenarnya tidak dapat mengakses Wireshark.
    • Ada sejumlah besar masalah jaringan yang saya dapat dengan cepat mengidentifikasi dan menyelesaikan hanya dengan menjalankan tcpdump.
Zoredache
sumber
Poin yang sangat bagus dibuat pada masalah jaringan dan sistem file menghargai jawabannya :)
Prix
Are you really sure you care about the day-to-day things?mmmmm tapi masalah inst yang terjadi bagian dari kehidupan sehari-hari satu? yang akan mengarahkan Anda ke fitur yang digunakan misalnya jaringan ifconfig dhcp seperti yang Anda katakan ... men-debug pada tingkat masalah apa yang terjadi, dll.
Prix
10
Poin bagus. Juga di sepanjang baris itu: Anda harus mengetahui dasar-dasar editor vi. Terlepas jika Anda menggunakan joe, pico, emacs, atau MS Word untuk pengeditan harian Anda, itu tidak akan tersedia dalam sistem penyelamatan, dan vi berbeda ;)
Sven
1
Terima kasih, saya mencari alasan untuk menghabiskan waktu belajar lebih dari: q! perintah dalam vi.
tovare
nano dan vi / vim biasanya tersedia secara universal, walaupun saya telah melihat sistem dengan hanya nano
Fahad Sadah
11

Ketahui Alat Yang Anda Miliki

Anda tidak akan pernah tahu segalanya sebelumnya. Tetapi Anda bisa tahu apa yang harus Anda kerjakan. Semakin banyak alat yang Anda ketahui, semakin banyak yang dapat Anda gunakan. Jika Anda tahu apa alatnya, apa fungsinya, dan di mana menemukan lebih banyak informasi tentangnya, maka itu sudah cukup baik untuk memulai.

Biasakan diri dengan manhalaman - halamannya. Anda tidak harus menghafalnya, tetapi Anda harus tahu di mana menemukan apa yang Anda cari. manhalaman lebih baik daripada Google untuk mencari rincian sintaksis, karena halaman yang diinstal pada sistem yang diberikan mencerminkan berbagai keanehan atau informasi khusus versi yang sesuai dengan sistem yang Anda lihat.

Jika Anda menggunakan apachebanyak, maka saya sarankan mempelajari sintaks konfigurasi apache. Jika Anda menggunakannya nginxsebagai gantinya, maka pelajari itu sebagai gantinya. Namun demikian, Anda harus tahu apa keduanya dan bagaimana mereka berbeda.

Alat Sistem

Ada beberapa alat yang akan membantu Anda apa pun jenis pekerjaan sysadmin yang Anda lakukan. Dengan asumsi Anda mengetahui dasar-dasarnya, seperti chmod,, mountdll., Berikut adalah beberapa alat yang sangat membantu yang tidak dimengerti oleh beberapa admin:

  • rsync
  • sar / iostat (bagian dari paket sysstat)
  • setfacl / getfacl (kebanyakan admin berpikir chmod / chown adalah yang harus Anda kerjakan)
  • keriting dan / atau goyah
  • iptables
  • siapa / terakhir / w

Baris perintah Ninja

Saya akan mengatakan pemahaman yang kuat tentang skrip shell tidak membuat keajaiban untuk membuat hal-hal sulit cepat dan mudah. Jika Anda harus mencari sintaksnya, maka kemungkinan Anda tidak akan melakukannya sama sekali, jadi mengetahui sebelumnya sangat penting.

Sebagai contoh, katakanlah Anda memiliki direktori yang penuh dengan mysqldumpfile ".sql", masing-masing mewakili database yang perlu diimpor ke server. Apakah Anda mengimpor 35 semuanya secara manual? Jika Anda cukup terbiasa dengan skrip shell, sangat mudah dan mudah untuk mengetikkan satu perintah lalu mengambil kopi:

Catatan: Saya membaginya menjadi beberapa baris terpisah agar dapat dibaca; jika Anda membiarkan titik koma di dalam, Anda dapat meletakkan semuanya dalam satu baris. Kalau tidak, titik koma tidak diperlukan di akhir setiap baris.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Juga, saya sarankan untuk menggunakan sed. Anggap saja sebagai cara untuk menerapkan ekspresi reguler di mana saja. http://www.grymoire.com/Unix/Sed.html

Katakanlah Anda mengubah nomor telepon Anda dan perlu memperbarui semua halaman web Anda sesuai (dan menyimpan salinan cadangan jika Anda mengacaukan).

sed -i.bak 's/555-1234/555-4321/' *.html

Mengetahui cara menghubungkan alat yang ada dengan benar untuk melakukan hal-hal baru juga dapat sangat membantu. Katakanlah Anda perlu melakukan hal yang sama seperti di atas, tetapi juga mencari di dalam subdirektori -

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

Ini juga berguna untuk memiliki pengalaman perl. Anda mungkin tidak perlu menulis program yang serius dengan hal itu, tapi itu dirancang untuk melakukan banyak hal-hal yang seddan awklakukan, hanya mungkin sedikit lebih fleksibel.

Perl dapat digunakan untuk melakukan sihir baris perintah menggunakan -eopsi. Menggunakan dengan -p,, -ndan -i, Anda dapat dengan cepat menulis filter sederhana untuk melakukan hal-hal yang sangat berguna. Misalnya, Anda perlu menemukan alamat IP semua orang yang mengakses "/admin.php" pada bulan September:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

Lihat? Itu tidak terlalu buruk. Sebagai sysadmin, Anda diharapkan tahu bagaimana melakukan hal ini.

tylerl
sumber
+1 @tylerl poin yang sangat bagus dibuat di sini ... saya sering menggunakan perl untuk memakukan sebagian besar hal yang perlu saya lakukan dengan baris perintah dan saya dapat meyakinkan Anda mengetahui bahwa itu adalah suatu keharusan! Apakah Anda keberatan memposting beberapa masalah yang biasanya Anda jalankan juga? Saya ingin membacanya juga, setelah membaca jawaban Zoredache saya menemukan bahwa banyak hal berguna muncul pada mereka. Sangat menghargai !
Prix
9

Saya seorang admin Windows yang mencoba-coba sedikit di Linux, jadi saya tidak dalam posisi untuk menjawab pertanyaan secara langsung. Namun, menurut saya setelah Anda memahami dasar-dasar satu hal yang paling penting yang perlu diketahui admin, terlepas dari OS, adalah di mana dan bagaimana menemukan jawabannya.

John Gardeniers
sumber
Penambangan info adalah salah satu keahlian utama saya. Saya menggunakannya terus-menerus selama menjalankan tugas.
sysadmin1138
baik saya sudah memiliki pengetahuan dasar tetapi saya tidak memiliki pengalaman sehari-hari di lapangan, saya memiliki server, membuat beberapa jaringan, dan lebih jauh saya bahkan memiliki beberapa pengetahuan yang mendalam dalam begitu banyak bagian ... tetapi saya ingin untuk meningkatkan pengetahuan ini dengan apa yang benar-benar digunakan setiap hari untuk Linux SysAdm dan dari sana belajar lebih banyak ... saya lebih fokus untuk mendapatkan daftar kehidupan HARIAN dari ini :)
Prix
2

Selain jawaban lain:

Saya pikir Anda juga harus tahu jalan di sekitar proses ditangani:

  • pengetahuan dasar di mana menemukan barang di / proc
  • ps, top, vmstat dan beberapa spin-off mereka yang lebih canggih (ntop, htop, dll.)
  • tahu bagaimana menafsirkan output dari setidaknya satu alat pemantauan yang baik seperti nagios (mungkin berlebihan) atau munin.

Saya pikir Anda tidak perlu menguasai sed (saya tahu saya tidak setidaknya), saya berhasil bertahan dengan salah satu greps (grep, egrep, zgrep, dll) dengan mudah. Anda harus tahu sintaks ekspresi reguler dasar.

Saya pikir Anda harus tahu perintah dasar untuk memanipulasi dan / atau memonitor MTA (postfix atau exim) dan MDA (dovecot, cyrus, kurir) jika Anda memelihara server mail. Bahkan jika Anda tidak menjalankannya, Anda harus dapat menjalankan tes SMTP dasar pada MTA, jika hanya untuk masalah pengiriman lokal.

Anda harus tahu jalan di sekitar sistem otentikasi yang Anda gunakan (PAM, LDAP). Di mana kata sandi Anda disimpan? menggunakan prosedur apa? Aplikasi apa yang menggunakan mekanisme otentikasi apa?

Jasper
sumber
iotop :) alat yang hebat saya tidak bisa hidup tanpa ps juga ... Ya, itu adalah perintah atau bahasa seperti perl, python, php yang dapat Anda jalankan dari baris perintah melakukan apa yang Anda butuhkan.
Prix
2

Ada beberapa hal yang benar-benar PERLU Anda ketahui.

Anda harus memiliki pemahaman yang baik tentang shell Anda (bagaimana mem-parsing argumen, bagaimana memperluas wildcard, di mana kasus sudut niggly berada).

Anda harus dapat mengedit file tanpa X11 berjalan.

Anda harus dapat memasang dan melepas sistem file.

Anda harus memiliki kemampuan untuk menyerap informasi baru dengan cepat. Karena ini adalah keterampilan yang Anda butuhkan ketika server farm seluruh perusahaan mogok dan Anda hanya memiliki akses melalui server konsol piddly (itu "konsol" seperti di port serial) dan / atau koneksi VPN yang sangat lambat (membuat cara berbasis X11 apa pun juga menyakitkan). Dan itu akan terjadi, jadi rencanakanlah.

Vatine
sumber
2

Contoh-contoh yang diberikan adalah semua jawaban terkait Server yang hebat .. namun .. Administrasi sistem tidak pernah 100% komputer .. Saya berharap begitu!

Anda harus berurusan dengan orang lain, dalam kasus kami, itu berarti Manglement, Lusers, Contractors and Suppliers .. arg ^ n

Keterampilan layanan pelanggan mengetahui cara berbicara tentang apa yang Anda butuhkan / inginkan / harus-lakukan, mendapatkan informasi kepada orang lain, dokumentasi, semua sangat penting dalam Menjaga pekerjaan sysadmin Anda.

Jika Anda ingin agar proyek Anda didanai dan digunakan: Tidak ada gunanya mencoba mendapatkan server baru jika Anda tidak tahu bagaimana cara meminta uang, jika Anda tidak memiliki angka / alternatif / rencana DR / kutipan / rencana implementasi dll. Politik kantor adalah B ** CH, uang selalu: "Ketat" .. apa pun artinya .. itu tidak memengaruhi mobil perusahaan eksekutif, tetapi itu akan memengaruhi keamanan situs Anda & kemampuan untuk melakukan standarisasi jika Anda dapat akan mengesankan alasan mereka pada mereka.

Saya akan mengatakan hal yang paling penting untuk diingat: JANGAN PERCAYA APA YANG DIATAKAN PENGGUNA . Ingatlah hal itu ketika menjawab telepon .. tidak peduli apa yang mereka katakan, Anda masih harus memikirkannya sendiri, karena pada akhirnya Anda keledai, bukan milik mereka, dan mereka umumnya tidak tahu. Hanya karena mereka dapat menyusun paragraf kata kunci yang sarat muatan untuk memperdaya bos Anda, tidak berarti mereka benar-benar tahu apa yang baru saja mereka katakan.

Pikiran lain:

  • Pastikan Anda memiliki cukup waktu pada UPS untuk mematikan semuanya KAPAN listrik mati

  • Memantau, pastikan Anda TAHU itu sudah turun .. jangan menunggu lusers untuk menelepon.

  • BACKUPS BACKUPS BACKUPS .. sistem multiuser cenderung lembur jika Anda tidak memiliki sistem cadangan yang baik .. lembur buruk, (bukan untuk kantong Anda, tetapi untuk anggaran dan penampilan profesionalisme).

  • JANGAN PERNAH MENGUBAH APA SAJA PADA JUMAT, atau sehari sebelum liburan .. Anda akan dipanggil selama akhir pekan, Anda harus memperbaikinya, Anda akan memiliki waktu yang sangat buruk ..

  • Standarisasi & Otomatisasi .. sebanyak yang Anda bisa! Jika Anda dapat membuat skrip, mengapa Anda tidak melakukannya?

  • Cari tahu bagaimana menggunakan / menginstal sistem helpdesk, membuat pengguna mencatat panggilan melalui itu, itu akan memungkinkan Anda untuk melacak aktivitas Anda, memberikan insentif kepada atasan dengan membayar lebih banyak untuk pekerjaan yang Anda lakukan, dan memungkinkan Anda untuk merekam jawaban Anda (defacto KB) .. semua sambil memberi tahu pengguna tentang perkembangannya. Memastikan bahwa pertanyaan pengguna / masalah tidak hilang dalam banjir .. (Spiceworks gratis, ada banyak lainnya)

  • Saya membeli salinan: Praktek Administrasi Sistem , oleh Limoncelli, saya sangat merekomendasikannya.

Grizly
sumber
1

Seorang admin Linux perlu memahami izin file secara menyeluruh, serta penggunaan alat-alat seperti su dan sudo , chmod dan chown dll, cara menambahkan pengguna ke grup atau membuat pengguna baru, cara memberikan hak istimewa SSH kepada pengguna tertentu atau kelompok.

thomasrutter
sumber
0

Perlu cepat dengan editor di baris perintah.

Logan
sumber
0

Pelajari sed,, grepdan awk: banyak dari apa yang saya lakukan setiap hari sebagai sysadmin Linux adalah merobohkan daftar besar file / komputer / pengguna / dll. dan mengubah input menjadi set output lain untuk digunakan program lain.

Contoh konkret dari hal ini adalah mengambil daftar komputer yang rusak dari, katakanlah, bugzilla atau RT, menghapus semua informasi asing yang dengan cepat saya salin dan tempelkan ke dokumen teks menggunakan salah satu dari tiga alat di atas, dan kemudian mengeluarkan daftar ruang terbatas sekelompok node yang saya butuhkan untuk SSH.

Juga, Anda pasti harus tahu batas atas shell yang Anda gunakan. Lebih sering daripada tidak, jika Anda harus mengambil banyak file basi, Anda mungkin akan menemukan folder dengan 30k + file di dalamnya. rm *tidak akan berfungsi, karena asterisk akan diperluas ke daftar dengan lebih dari 30k entri, dan shell yang Anda gunakan kemungkinan tidak akan dapat menampung daftar ukuran itu. Cara Anda mengatasi ini adalah dengan xargs: alih-alih rm *, Anda akan menggunakan ls | xargs -i{} rm {}, yang akan berfungsi.

Christian Paredes
sumber
0

Sebagai seorang sysadmin, saya menganggap diri saya seorang dokter digital (atau, tergantung pada harinya, terkadang seorang ahli bedah otak kelas dunia).

Ketika semuanya bekerja, Anda akan memiliki banyak waktu untuk meningkatkan keterampilan Anda sendiri dan sistem yang Anda kelola.

Ketika sesuatu gagal, Anda harus dapat segera mendiagnosis masalah dan menyadari cara memperbaikinya.

Jadi, Anda perlu mempelajari / menghafal dasar-dasar (dan juga untuk beberapa titik internal) dari server dan aplikasi yang Anda kelola. Katakanlah perusahaan Anda meng-host situs web dengan root web yang dilayani melalui NFS. Tiba-tiba semua node www mulai mengkhawatirkan dan situs berhenti merespons. Apa yang harus dicurigai? Ah-ha! Server NFS baru saja turun dan pengelompokan failover juga tidak berfungsi karena beberapa alasan.

Aspek penting lainnya untuk dipelajari adalah beban dasar dari server yang Anda kelola. Belajarlah untuk menghafal rata-rata beban mereka, penggunaan cpu, penggunaan memori dan hal-hal seperti itu. OK, Anda tidak harus benar-benar menghafal semua itu - grafik yang dibuat dengan Cacti atau net-snmp + mrtg dapat banyak membantu, tetapi jika pager Anda mengkhawatirkan server X berperilaku aneh dan pada saat yang sama helpdesk memanggil Anda menceritakan tentang beberapa lainnya server atau layanan akan gila, Anda mungkin dapat menggabungkan kedua hal itu dan pergi untuk memperbaikinya bahkan sebelum melihat log, riwayat alarm atau grafik.

Juga bersiap-siap untuk yang terburuk: pikirkan apa yang akan Anda lakukan jika seluruh pusat data akan mati karena pemadaman listrik. Bagaimana Anda akan mem-boot semuanya setelah listrik kembali tersedia? Apa yang akan Anda lakukan jika sesuatu tidak mulai? Bagaimana Anda mengembalikan cadangan? Atau apa yang akan Anda lakukan jika seseorang memberi tahu Anda tentang seorang cracker yang baru saja masuk ke server Anda? (Hal-hal semacam ini harus didokumentasikan sebagai daftar periksa, tetapi bagus juga untuk memiliki semacam intuisi)


Dan, seperti yang disebutkan oleh orang lain, lanjutkan dan skrip hal-hal yang seharusnya berjalan (semi-) secara otomatis. Belajar dan bermain dengan shell / Perl, mereka benar-benar teman terbaik Anda dan seringkali dapat memecahkan masalah yang sangat kompleks dengan hanya beberapa perintah yang disatukan.

Janne Pikkarainen
sumber