Systemd เป็นระบบและผู้จัดการบริการในระบบปฏิบัติการ Linux ได้รับการออกแบบมาให้เข้ากันได้กับสคริปต์เริ่มต้น SysV และให้คุณสมบัติที่มีประโยชน์ เช่น การเริ่มต้นบริการระบบแบบขนานในเวลาบูต การเปิดใช้งาน daemons ตามความต้องการ การสนับสนุนสแนปช็อตสถานะระบบ และตรรกะการจัดการบริการที่อิงตามการพึ่งพา ใน CentOS 7 นั้น systemd จะแทนที่ Upstart เป็นระบบเริ่มต้นเริ่มต้น
ในบทความนี้เราจะดูกระบวนการจัดการบริการ systemd สำหรับ ผู้ใช้ CentOS 7. ความรู้นี้จะมีประโยชน์ในการแจกแจงอื่นๆ เนื่องจาก systemd ถูกใช้ใน Fedora มาเป็นเวลานานและมีการวางแผนใน Ubuntu 14.10 และ Debian 8 ไม่ว่าสิ่งนี้จะดีหรือไม่ก็ตามจะถูกทิ้งไว้เบื้องหลัง
ขณะที่อ่านบทความนี้ คุณสามารถลองใช้ systemd บน VPS แบบคลาสสิกและ VPS บนคลาวด์ได้จากกล่องข้อมูล เรามุ่งมั่นที่จะเพิ่มการรองรับระบบปฏิบัติการสมัยใหม่ในเวลาที่เหมาะสม เพื่อให้คุณสามารถใช้เทคโนโลยีใหม่ล่าสุดได้มากขึ้น งานที่มีประสิทธิภาพ- แนวคิดในการเขียนบทความนี้เกิดขึ้นหลังจากคำถามอื่นจากผู้ใช้เกี่ยวกับการใช้บริการใน CentOS 7
การแนะนำ
Systemd นำแนวคิดของหน่วย systemd หน่วยต่างๆ จะแสดงด้วยไฟล์การกำหนดค่าที่อยู่ในไดเร็กทอรีใดไดเร็กทอรี:- /usr/lib/systemd/ระบบ/– หน่วยจากแพ็คเกจ RPM ที่ติดตั้ง
- /รัน/systemd/ระบบ/- หน่วยที่สร้างขึ้นในรันไทม์ ไดเร็กทอรีนี้มีลำดับความสำคัญเหนือไดเร็กทอรีที่มีหน่วยที่ติดตั้งจากแพ็กเกจ
- /etc/systemd/ระบบ/- หน่วยที่สร้างและจัดการโดยผู้ดูแลระบบ ไดเร็กทอรีนี้มีความสำคัญมากกว่าไดเร็กทอรีของหน่วยที่สร้างขึ้นขณะรันไทม์
ประเภทหน่วย Systemd:
- .บริการ– บริการระบบ
- .เป้า- กลุ่มหน่วย systemd
- .ออโต้เมาท์ t – จุดเมานท์ระบบไฟล์อัตโนมัติ
- .อุปกรณ์– ไฟล์ของอุปกรณ์ที่เคอร์เนลรู้จัก
- .เมานต์– จุดเมานท์ระบบไฟล์
- .เส้นทาง– ไฟล์หรือไดเร็กทอรีในระบบไฟล์
- .ขอบเขต– กระบวนการที่สร้างขึ้นจากภายนอก
- .ชิ้น– กลุ่มของหน่วยที่มีการจัดระเบียบตามลำดับชั้นที่จัดการกระบวนการของระบบ
- .สแนปชอต– สถานะที่บันทึกไว้ของผู้จัดการ systemd
- .ซ็อกเก็ต– ซ็อกเก็ต การสื่อสารระหว่างกระบวนการ
- .แลกเปลี่ยน– สลับอุปกรณ์หรือสลับไฟล์ (สลับไฟล์)
- .ตัวจับเวลา– ระบบจับเวลา
คุณสมบัติพื้นฐานของ systemd ใน CentOS 7
- การเปิดใช้งานตามซ็อกเก็ต- ณ เวลาบูต systemd จะรับฟังซ็อกเก็ตสำหรับบริการของระบบทั้งหมด รองรับการเปิดใช้งานประเภทนี้ และส่งผ่านซ็อกเก็ตไปยังบริการเหล่านี้ทันทีหลังจากเริ่มบริการ สิ่งนี้ช่วยให้ systemd ไม่เพียงแต่เรียกใช้บริการในแบบคู่ขนานเท่านั้น แต่ยังให้ความสามารถในการรีสตาร์ทบริการโดยไม่สูญเสียข้อความใด ๆ ที่ส่งถึงพวกเขาในขณะที่บริการไม่พร้อมใช้งาน ซ็อกเก็ตที่เกี่ยวข้องยังคงอยู่และข้อความทั้งหมดอยู่ในคิว
- การเปิดใช้งานตาม D-Bus- บริการระบบที่ใช้ D-Bus สำหรับการสื่อสารระหว่างกระบวนการสามารถเริ่มต้นได้ตามความต้องการเมื่อใด แอปพลิเคชันไคลเอนต์พยายามติดต่อพวกเขา
- การเปิดใช้งานตามอุปกรณ์- บริการของระบบที่รองรับการเปิดใช้งานตามอุปกรณ์สามารถเริ่มต้นได้เมื่อมีการเชื่อมต่อฮาร์ดแวร์บางประเภทหรือพร้อมใช้งาน
- การเปิดใช้งานตามเส้นทาง- บริการของระบบสามารถรองรับการเปิดใช้งานประเภทนี้ได้หากสถานะของโฟลเดอร์หรือไดเร็กทอรีเปลี่ยนแปลง
- ภาพรวมของสถานะของระบบ- ระบบสามารถบันทึกสถานะของทุกยูนิตและกู้คืนได้ สถานะก่อนหน้าระบบ
- การจัดการจุดเมานท์และจุดเมานท์อัตโนมัติ- Systemd ตรวจสอบและจัดการจุดเมานท์และจุดเมานท์อัตโนมัติ
- การขนานแบบก้าวร้าว Systemd เริ่มทำงาน บริการระบบขนานกันเนื่องจากการใช้การเปิดใช้งานแบบซ็อกเก็ต เมื่อใช้ร่วมกับบริการที่รองรับการเปิดใช้งานตามความต้องการ การเปิดใช้งานแบบขนานจะช่วยลดเวลาการบูตระบบได้อย่างมาก
- ลอจิกธุรกรรมสำหรับการเปิดใช้งานหน่วย- ก่อนที่หน่วยจะถูกเปิดใช้งานหรือปิดใช้งาน systemd จะคำนวณการขึ้นต่อกัน สร้างธุรกรรมชั่วคราว และตรวจสอบความสมบูรณ์ของธุรกรรมนั้น หากธุรกรรมไม่เสียหาย systemd จะพยายามแก้ไขและลบงานที่ไม่จำเป็นออกโดยอัตโนมัติก่อนที่จะสร้างข้อความแสดงข้อผิดพลาด
- เข้ากันได้กับการเริ่มต้น SysV- SystemD รองรับสคริปต์เริ่มต้น SysV อย่างสมบูรณ์ตามที่อธิบายไว้ในข้อกำหนด Linux Standard Base (LSB) ทำให้ง่ายต่อการโยกย้ายไปยัง systemd
การจัดการบริการ
CentOS เวอร์ชันก่อนหน้าใช้ SysV หรือ Upstart สคริปต์การเริ่มต้นอยู่ในไดเร็กทอรี /etc/rc.d/init.d/- สคริปต์ดังกล่าวมักจะเขียนด้วย Bash และอนุญาตให้ผู้ดูแลระบบจัดการสถานะของบริการและเดมอน ใน CentOS 7 สคริปต์เริ่มต้นจะถูกแทนที่ด้วยหน่วยบริการโดยวิธีการใช้บริการหน่วยบริการ .บริการคล้ายกับสคริปต์เริ่มต้น หากต้องการดู เริ่ม หยุด รีบูต เปิดหรือปิดใช้งานบริการระบบ ให้ใช้คำสั่ง ระบบ- ทีม บริการและ chkconfigยังคงรวมอยู่ในระบบ แต่ด้วยเหตุผลด้านความเข้ากันได้เท่านั้น
เมื่อใช้ systemctl ไม่จำเป็นต้องระบุนามสกุลไฟล์
ด้านล่างนี้เป็นคำสั่งพื้นฐาน ระบบ:
- systemctl เริ่มต้น name.service– เริ่มให้บริการ
- systemctl หยุด name.service- หยุดให้บริการ
- systemctl รีสตาร์ท name.service- เริ่มบริการใหม่
- systemctl ลองรีสตาร์ท name.service- เริ่มบริการใหม่เฉพาะในกรณีที่บริการทำงานอยู่
- systemctl รีโหลด name.service- โหลดการกำหนดค่าบริการอีกครั้ง
- ชื่อสถานะ systemctl.service- ตรวจสอบว่าบริการกำลังทำงานอยู่พร้อมเอาต์พุตโดยละเอียดของสถานะการบริการหรือไม่
- systemctl is-active name.service- ตรวจสอบว่าบริการกำลังทำงานอยู่หรือไม่ด้วยคำตอบง่ายๆ: ใช้งานอยู่หรือไม่ได้ใช้งาน
- systemctl รายการหน่วย -- ประเภทบริการ -- ทั้งหมด– แสดงสถานะของบริการทั้งหมด
- systemctl เปิดใช้งาน name.service– เปิดใช้งานบริการ (อนุญาตให้เริ่มต้นระหว่างการเริ่มต้นระบบ)
- systemctl ปิดการใช้งาน name.service– ปิดการใช้งานบริการ
- systemctl เปิดใช้งาน name.service อีกครั้ง– ปิดการใช้งานบริการและเปิดใช้งานทันที
- systemctl คือ – เปิดใช้งาน name.service– ตรวจสอบว่าเปิดใช้งานบริการแล้วหรือไม่
- systemctl list-unit-files --type บริการ– แสดงบริการทั้งหมดและตรวจสอบว่าบริการใดเปิดใช้งานอยู่
- ชื่อหน้ากาก systemctl.service– แทนที่ไฟล์บริการด้วย symlink เป็น /dev/null ทำให้หน่วยไม่พร้อมใช้งานสำหรับ systemd
- systemctl เปิดโปง name.service– ส่งคืนไฟล์บริการ ทำให้หน่วยพร้อมใช้งานสำหรับ systemd
การทำงานกับเป้าหมาย Systemd
ก่อนหน้า เวอร์ชัน CentOSด้วย SysV init หรือ Upstart รวมชุด runlevels ที่กำหนดไว้ล่วงหน้าซึ่งแสดงถึงโหมดเฉพาะสำหรับการดำเนินการซึ่งมีหมายเลข 0 ถึง 6 ใน CentOS 7 แนวคิดของ runlevels ถูกแทนที่ด้วยเป้าหมาย systemdไฟล์เป้าหมาย systemd .เป้าได้รับการออกแบบมาเพื่อจัดกลุ่ม systemd ยูนิตอื่นๆ เข้าด้วยกันผ่านห่วงโซ่การพึ่งพา ยกตัวอย่างหน่วย graphical.เป้าหมายใช้เพื่อเริ่มเซสชันแบบกราฟิก เริ่มบริการระบบตัวจัดการจอแสดงผล GNOME ( gdm.บริการ) และบริการบัญชี ( บัญชี – daemon.service) และเปิดใช้งาน ผู้ใช้หลายรายเป้าหมาย- ในทางกลับกัน ผู้ใช้หลายรายเป้าหมายรันบริการระบบอื่นๆ เช่น Network Manager ( NetworkManager.บริการ) หรือ D-บัส ( dbus.บริการ) และเปิดใช้งานยูนิตเป้าหมายอื่นๆ basic.เป้าหมาย.
CentOS 7 มาพร้อมกับเป้าหมายที่กำหนดไว้ล่วงหน้าคล้ายกับ ชุดมาตรฐานวิ่งระดับ เพื่อเหตุผลด้านความเข้ากันได้ พวกเขายังมีนามแฝงสำหรับเป้าหมายเหล่านี้ที่ปรากฏโดยตรงในระดับรัน SysV
- poweroff.target (runlevel0.target)– การปิดและการปิดระบบ
- Rescue.target (runlevel1.target)– การตั้งค่าเชลล์การกู้คืน
- ผู้ใช้หลายรายเป้าหมาย (runlevel2.target, runlevel3.target, runlevel4.target)– การตั้งค่าระบบผู้ใช้หลายคนที่ไม่ใช่กราฟิก
- graphical.target (runlevel5.target)– การตั้งค่าระบบผู้ใช้หลายคนแบบกราฟิก
- รีบูต.เป้าหมาย (runlevel6.target)– ปิดระบบและรีบูตระบบ
ในการพิจารณาว่าหน่วยเป้าหมายใดเป็นค่าเริ่มต้น คำสั่งต่อไปนี้มีประโยชน์: systemctl รับ - ค่าเริ่มต้น.
หากต้องการดูหน่วยเป้าหมายที่โหลดทั้งหมด ให้ใช้คำสั่ง systemctl list-units --type เป้าหมายและดูหน่วยเป้าหมายทั้งหมดโดยทั่วไปด้วยคำสั่ง: systemctl รายการหน่วย -- ประเภทเป้าหมาย -- ทั้งหมด.
หากต้องการเปลี่ยนเป้าหมายเริ่มต้น ให้ใช้คำสั่ง systemctl ตั้งค่าเริ่มต้น name.target.
หากต้องการเปลี่ยนเป้าหมายปัจจุบัน: systemctl แยก name.target- คำสั่งจะเริ่มการทำงานของหน่วยเป้าหมายและการขึ้นต่อกันทั้งหมด และหยุดหน่วยอื่นๆ ทั้งหมดทันที
ใน CentOS 7 นั้น systemctl จะแทนที่คำสั่งการจัดการพลังงานจำนวนมาก คำสั่งก่อนหน้านี้ยังคงอยู่เพื่อความเข้ากันได้ แต่ขอแนะนำให้ใช้ systemctl:systemctl หยุดทำงาน– หยุดระบบ
ปิดระบบ systemctl– ปิดระบบ
systemctl รีบูต– รีบูทระบบ
การจัดการ systemd บนเครื่องระยะไกล
Systemd ช่วยให้คุณจัดการเครื่องระยะไกลผ่าน SSH เพื่อควบคุมการใช้คำสั่ง:systemctl --host คำสั่ง user_name@host_nameโดยที่ user_name คือชื่อผู้ใช้ host_name คือชื่อของโฮสต์ที่ การควบคุมระยะไกลและ command คือคำสั่ง systemd ที่จะดำเนินการ
systemd .service ทั่วไป
ส่วนนี้จะช่วยคุณหากคุณต้องการสนับสนุนการจัดการบริการจาก systemd อย่างรวดเร็ว ข้อมูลโดยละเอียดเกี่ยวกับพารามิเตอร์ทั้งหมดของไฟล์ .service มีอยู่ในส่วนที่เกี่ยวข้องของเอกสารประกอบ systemdคำอธิบาย=Daemon เพื่อตรวจจับแอปที่ขัดข้อง After=syslog.target ExecStart=/usr/sbin/abrtd Type=forking WantedBy=multi-user.target
มาดูในส่วนนี้กัน
- ประกอบด้วย ข้อมูลทั่วไปเกี่ยวกับการบริการ ส่วนนี้ไม่เพียงมีอยู่ในหน่วยบริการเท่านั้น แต่ยังอยู่ในหน่วยอื่นๆ ด้วย (เช่น เมื่อจัดการอุปกรณ์ จุดเชื่อมต่อ ฯลฯ) ในตัวอย่างของเรา เราให้คำอธิบายของบริการและระบุว่า daemon ควรเริ่มทำงานหลังจาก Syslog
ในส่วนถัดไป มีข้อมูลโดยตรงเกี่ยวกับบริการของเรา พารามิเตอร์ที่ใช้ เอ็กเซ็กสตาร์ทชี้ไปที่ ไฟล์ปฏิบัติการบริการของเรา ใน พิมพ์เราระบุวิธีที่บริการแจ้งเตือน systemd เมื่อเริ่มต้นระบบเสร็จสิ้น
ส่วนสุดท้าย มีข้อมูลเกี่ยวกับเป้าหมายที่ควรเริ่มบริการ ในกรณีนี้ เรากำลังบอกว่าควรเริ่มบริการเมื่อเปิดใช้งานเป้าหมาย ผู้ใช้หลายรายเป้าหมาย.
นี่คือไฟล์การทำงานขั้นต่ำ บริการระบบ- หลังจากเขียนของคุณแล้ว ให้คัดลอกไปที่ /etc/systemd/system/service_name.service เพื่อทำการทดสอบ รันคำสั่ง systemctl daemon-รีโหลด- Systemd จะทราบเกี่ยวกับบริการและคุณจะสามารถเริ่มต้นได้
ข้อมูลเพิ่มเติม
บทช่วยสอนที่ยอดเยี่ยมเกี่ยวกับ systemd จาก RedHat ซึ่งเป็นพื้นฐานสำหรับบทความนี้เอกสารประกอบสำหรับการเขียนหน่วยบริการ systemd ของคุณเอง
“ Systemd สำหรับผู้ดูแลระบบ” จากผู้พัฒนา systemd ในภาษารัสเซีย
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีจัดการบริการ CentOS 7 แน่นอนว่านี่ไม่ใช่ฟังก์ชันเดียวของ systemd และจะมีการหารือด้านอื่นๆ ในอนาคต ระบบปฏิบัติการนั้นมีให้บริการบน VPS แบบคลาสสิกและ VPS บนคลาวด์จาก Infobox เกือบจะนับตั้งแต่เปิดตัว ลอง systemd ตอนนี้ ความรู้นี้จะมีประโยชน์ในการเชื่อมต่อกับการเปลี่ยนแปลงของการแจกแจงหลายแบบไปเป็น systemdหากพบข้อผิดพลาดในบทความ ผู้เขียนยินดีแก้ไขให้ กรุณาเขียนใน PM หรืออีเมล์เกี่ยวกับเรื่องนี้
หากคุณไม่สามารถแสดงความคิดเห็นเกี่ยวกับHabré คุณสามารถเขียนลงในบล็อกได้
ระบบ ลินุกซ์เป็นผู้ใช้หลายคนที่ทำงานแบบมัลติทาสกิ้ง ระบบปฏิบัติการซึ่งหมายความว่าผู้คนจำนวนมากสามารถวิ่งได้มากในเวลาเดียวกัน แอพพลิเคชั่นต่างๆพร้อมกันบนคอมพิวเตอร์เครื่องเดียวกัน ระบบนี้ ลินุกซ์แตกต่างจาก ระบบ MS-DOSตัวอย่างเช่น โดยที่มีเพียงคนเดียวเท่านั้นที่สามารถทำงานบนคอมพิวเตอร์ในเวลาเดียวกันได้
ตัวเลือก คำสั่งลินุกซ์มักจะเริ่มต้นด้วยสัญลักษณ์ - หลังจากนั้นคุณสามารถระบุหลายตัวเลือกได้ในคราวเดียว ตัวอย่างเช่น แทนที่จะใช้คำสั่ง ls -l -F คุณสามารถป้อนคำสั่ง ls -lF ได้
เป็นอาร์กิวเมนต์คำสั่ง ลินุกซ์อาจเป็นรายการชื่อไฟล์หรือไดเร็กทอรี ตัวอย่างเช่น อาร์กิวเมนต์ของคำสั่ง cp คือชื่อของไฟล์ที่จะถูกคัดลอก รายการไฟล์ที่คัดลอกจะถูกปิดด้วยชื่อของไฟล์ (หรือไดเร็กทอรี) ที่ไฟล์จะถูกคัดลอก เมื่อคัดลอกมากกว่าหนึ่งไฟล์ ชื่อไดเร็กทอรีจะต้องอยู่ต่อท้าย
การสร้างชื่อผู้ใช้
ก่อนที่คุณจะเริ่มทำงานกับระบบที่ติดตั้งใหม่ ลินุกซ์คุณต้องสร้างชื่อให้ตัวเองสำหรับงานประจำวันของคุณ ไม่แนะนำให้ใช้รูทสำหรับสิ่งนี้ ซึ่งสงวนไว้สำหรับการดำเนินการ ทีมพิเศษและสำหรับงานเพื่อรักษาการทำงานของระบบ
หากต้องการสร้างชื่อผู้ใช้ ให้เข้าสู่ระบบในฐานะ root และใช้คำสั่ง useradd (หรือ adduser)
เข้าสู่ระบบ
โดยทั่วไป เมื่อคุณเข้าสู่ระบบ คุณจะเห็นข้อความแจ้งต่อไปนี้บนหน้าจอ:
หลังจากกรอกชื่อผู้ใช้และกดปุ่มแล้ว เข้าคุณจะได้รับแจ้งให้ป้อนรหัสผ่าน:
เข้าสู่ระบบ localhost: รหัสผ่าน oleg:
หลังจากนี้คุณจะต้องป้อนรหัสผ่าน (อักขระที่คุณพิมพ์จะไม่ปรากฏบนหน้าจอ) หากคุณป้อนรหัสผ่านไม่ถูกต้อง ข้อความต่อไปนี้จะปรากฏขึ้นบนหน้าจอ:
เข้าสู่ระบบ localhost: รหัสผ่าน oleg: เข้าสู่ระบบเข้าสู่ระบบไม่ถูกต้อง:
หลังจากกรอกชื่อผู้ใช้และรหัสผ่านที่ถูกต้องแล้ว คุณจะเข้าสู่ระบบ
คอนโซลเสมือน
คอนโซลระบบคือจอภาพและคีย์บอร์ดที่เชื่อมต่อโดยตรงกับคอมพิวเตอร์ ระบบ ลินุกซ์คล้ายกับระบบเวอร์ชันอื่นๆ ยูนิกซ์ให้การเข้าถึงคอนโซลเสมือนซึ่งคุณสามารถดำเนินการหลายเซสชันในระบบพร้อมกันได้
เพื่อทำความคุ้นเคยกับการทำงานในคอนโซลเสมือน คุณควรเข้าสู่ระบบและกดคีย์ผสม Alt-F2 ข้อความเข้าสู่ระบบ: จะปรากฏขึ้นอีกครั้ง (นี่คือคอนโซลเสมือนตัวที่สอง) หากต้องการกลับไปยังคอนโซลเสมือนแรก คุณต้องกดคีย์ผสม Alt-F1 (คุณจะกลับสู่เซสชันการทำงานที่เริ่มต้นแล้ว)
แค่ตอนนี้ ระบบที่ติดตั้งล inuxตามกฎแล้วให้การเข้าถึงคอนโซลเสมือนหกคอนโซลแรกซึ่งสามารถเข้าถึงได้โดยใช้คีย์ผสม Alt-Fx ดังนั้นแล้ว ณ ระยะเริ่มแรกผู้ใช้ได้รับ เครื่องมืออันทรงพลังทำให้คุณทำงานได้หลายเซสชันพร้อมกัน
เชลล์และคำสั่ง
สื่อสารกับระบบมากที่สุด ลินุกซ์เกิดขึ้นผ่าน เชลล์คำสั่ง (เปลือก). เชลล์คำสั่งเป็นโปรแกรมที่รับคำสั่งที่ป้อนจากคีย์บอร์ดแล้วแปลงเป็นคำสั่งของระบบปฏิบัติการ
หลังจากเข้าสู่ระบบ ระบบปฏิบัติการจะเริ่มทำงาน เชลล์คำสั่งหลังจากนั้นคุณสามารถป้อนคำสั่งได้ Command เป็นคำแรกใน บรรทัดคำสั่ง- ทุกสิ่งทุกอย่างบนบรรทัดคำสั่งถือเป็นข้อโต้แย้งของคำสั่งนี้ ตามตัวอย่าง เรามาสร้าง (mkdir) ไดเร็กทอรีคำสั่ง:
คำสั่ง $ mkdir
ออกจากระบบ
หากต้องการออกจากระบบ หลังจากพร้อมท์เชลล์ ให้ป้อนคำสั่ง:
การเปลี่ยนรหัสผ่านของคุณ
หากต้องการเปลี่ยนรหัสผ่านคุณต้องป้อนคำสั่ง passwd คำสั่งจะแจ้งให้คุณป้อน รหัสผ่านเก่าและจากนั้น - อันใหม่ คำสั่งจะขอให้คุณป้อนรหัสผ่านใหม่อีกครั้งเพื่อยืนยัน:
ไฟล์และไดเร็กทอรี
ในระบบปฏิบัติการ ลินุกซ์ใช้แนวคิดของไฟล์ ( ไฟล์- ไฟล์คือข้อมูลบางส่วนที่มีชื่อเป็นของตัวเอง ( ชื่อไฟล์- คุณควรทราบว่าข้อมูลจะถูกบันทึกลงในดิสก์ในรูปแบบไฟล์แยกกันเท่านั้น
ชื่อ ไฟล์ปกติวี ลินุกซ์สามารถมีความยาวได้สูงสุด 255 อักขระ และประกอบด้วยอักขระใดก็ได้ ยกเว้นอักขระโค้ดและอักขระ / (เครื่องหมายทับ) อย่างไรก็ตาม ยังมีสัญลักษณ์จำนวนหนึ่งที่อยู่ในเชลล์ เปลือกความหมายพิเศษ จึงไม่แนะนำให้รวมไว้ในชื่อ เหล่านี้คืออักขระต่อไปนี้:
! @ # $ & ~ % * () { } " " \ : ; > แนวคิดของไฟล์มีความเกี่ยวข้องอย่างใกล้ชิดกับแนวคิดของไดเร็กทอรี ( ไดเรกทอรี- ไดเร็กทอรีคือชุดของไฟล์ ผู้ใช้ หน้าต่างพวกเขาเรียกไดเร็กทอรีว่า โฟลเดอร์ โดยการเปรียบเทียบกับโฟลเดอร์ที่มีชีตต่างๆ มากมาย อย่างไรก็ตามการเปรียบเทียบนี้ไม่ถูกต้องเพราะว่า ไดเร็กทอรีไม่มีไฟล์จริง แต่มีลิงก์ไปยังไฟล์และไดเร็กทอรีอื่น ๆ แคตตาล็อกจะได้รับชื่อที่สามารถระบุได้ นอกจากนี้ ไดเร็กทอรียังสร้างโครงสร้างแบบต้นไม้ กล่าวอีกนัยหนึ่ง มีไดเร็กทอรีรากเดียวที่มีไดเร็กทอรีอื่นทั้งหมดอยู่ภายใน เมื่อเข้าถึงไฟล์ จะมีการระบุพาธซึ่งอาจประกอบด้วยชื่อไดเร็กทอรี (ชื่อของไดเร็กทอรีที่ซ้อนกัน) ตามด้วยชื่อไฟล์ ชื่อจะถูกแยกออกจากกันด้วยเครื่องหมายทับ (/) ตัวอย่างเช่น: ในตัวอย่างข้างต้น คุณจะเห็นว่าชื่อถูกคั่นด้วยอักขระ / ด้วยเหตุนี้พวกเขาจึงไม่สามารถกักขังพระองค์ไว้ได้ บนระบบส่วนใหญ่ ลินุกซ์มีการใช้เค้าโครงไฟล์มาตรฐานเพื่อให้ค้นหาตำแหน่งของไฟล์ระบบและโปรแกรมที่สำคัญได้ง่าย ไดเร็กทอรีสร้างโครงสร้างแบบต้นไม้ที่ขึ้นต้นด้วยไดเร็กทอรี / ไดเร็กทอรีนี้เรียกอีกอย่างว่าไดเร็กทอรีราก ที่อยู่ติดกันโดยตรงกับไดเร็กทอรี / คือไดเร็กทอรีย่อยที่สำคัญ /bin, /etc, /dev, /usr และอื่นๆ เมื่อใดก็ตาม คำสั่งที่ออกจะอ้างอิงถึงไดเร็กทอรีปัจจุบัน ( ไดเรกทอรีปัจจุบัน- เมื่อคุณเข้าสู่ระบบ ไดเร็กทอรีปัจจุบันจะถูกตั้งค่าเป็นโฮมไดเร็กตอรี่ของคุณ (ในกรณีของเรา /home/oleg) เมื่ออ้างถึงไฟล์ คุณสามารถระบุเส้นทางแบบเต็มไปยังไฟล์นี้หรือเฉพาะเส้นทางจากไดเร็กทอรีปัจจุบันได้ ตัวอย่างก่อนหน้านี้ เมื่ออยู่ในไดเร็กทอรี /home/oleg/docs จะมีลักษณะดังนี้: $ น้อยกว่า mokshadharma/index.xml หากเส้นทางไปยังไฟล์ (เช่น mokshadharma/index.xml) ขึ้นต้นด้วยอักขระอื่นที่ไม่ใช่ / นั่นหมายความว่ามีการเข้าถึงไฟล์โดยสัมพันธ์กับไดเร็กทอรีปัจจุบัน วิธีการจัดการนี้เรียกว่า ในลักษณะสัมพันธ์กัน (เส้นทางสัมพัทธ์). หากชื่อไฟล์ขึ้นต้นด้วย / ระบบจะตีความว่าเป็นพาธแบบเต็ม กล่าวคือพาธที่นำไปสู่ไฟล์ โดยเริ่มจากไดเร็กทอรีราก / (/home/oleg/docs/mokshadharma/index.xml) นี่เรียกอีกอย่างว่า ในทางที่แน่นอน (เส้นทางที่แน่นอน). ในเชลล์คำสั่ง ทุบตีรวมอยู่ในระบบที่ติดตั้งใหม่เกือบทั้งหมด ลินุกซ์โฮมไดเร็กทอรีสามารถแสดงด้วยสัญลักษณ์ ~ ตัวอย่างเช่น คำสั่ง: $ น้อยกว่า ~/docs/mokshadharma/index.xml เทียบเท่ากับคำสั่ง: $ น้อยกว่า /home/oleg/docs/mokshadharma/index.xml คำสั่งที่ใช้ในการเลื่อนไปตามแผนผังไดเร็กทอรีเรียกว่า cd - ย่อมาจาก เปลี่ยนไดเร็กทอรี(เปลี่ยนไดเรกทอรี) เป็นตัวอย่างการใช้คำสั่ง cd ไปที่ไดเร็กทอรี /home/oleg/docs/mokshadharma/: $ cd ~/docs/mokshadharma ตอนนี้คุณสามารถเข้าถึงไฟล์จากไดเร็กทอรีปัจจุบันด้วยคำสั่งต่อไปนี้: $ น้อยกว่า index.xml หากต้องการย้ายไปยังไดเร็กทอรีระดับสูงกว่าที่ใกล้ที่สุด ให้ใช้คำสั่ง: หากต้องการเปลี่ยนเป็นโฮมไดเร็กตอรี่ คุณสามารถใช้คำสั่ง cd โดยไม่มีอาร์กิวเมนต์ได้: คำสั่ง ls (ย่อมาจาก รายการ) แสดงรายการไฟล์และไดเร็กทอรี (ตัวเลือก -F ช่วยให้คุณได้รับข้อมูลที่ครบถ้วนมากขึ้น): $ ls -F ~/docs/mokshadharma ch/ ch01.html ch02.html ch03.html cron.sh* docbook.xsl index.html index.xml pr01.html pt01.html สไตล์/ ในรายการเราจะเห็นว่าสัญลักษณ์ / ต่อท้ายชื่อของไดเร็กทอรีย่อย และต่อท้ายชื่อไฟล์ปฏิบัติการ ( ปฏิบัติการได้) กำหนดให้มีสัญลักษณ์ * หากต้องการสร้างไดเร็กทอรีใหม่ ให้ใช้คำสั่ง mkdir (ย่อมาจาก ทำไดเร็กทอรี- ตัวอย่างเช่น เรามาสร้างไดเร็กทอรีใหม่และป้อน: ตัวอย่าง $ mkdir ตัวอย่าง $ cd หากต้องการสร้างไฟล์ ให้ใช้คำสั่ง touch และ cat คำสั่ง touch สร้างไฟล์เปล่า: $สัมผัส file_name ในการสร้างไฟล์ คำสั่ง cat ซึ่งออกแบบมาเพื่อเปลี่ยนเส้นทางเอาต์พุต จะใช้อินพุตมาตรฐาน (คีย์บอร์ด) เป็นอินพุต และส่งเอาต์พุตของคำสั่งไปยังไฟล์ใหม่: $ cat > new_file พอเข้าแล้ว ข้อความที่ต้องการ, กดรวมกัน ใส่กุญแจและ Ctrl-D หรือ Enter และ Ctrl-C และทุกสิ่งที่ป้อนจะถูกเขียนไปที่ new_file แน่นอนว่าไฟล์ข้อความสั้นส่วนใหญ่ถูกสร้างขึ้นด้วยวิธีนี้ มีเพียงผู้ใช้ขั้นสูงเท่านั้นที่สามารถเปลี่ยนเจ้าของได้ เจ้าของไฟล์เองหรือผู้ใช้ระดับสูงสามารถเปลี่ยนแปลงกลุ่มได้ เพื่อให้มีสิทธิ์เปลี่ยนกลุ่ม เจ้าของจะต้องเป็นสมาชิกของกลุ่มเพิ่มเติมที่เขาต้องการให้สิทธิ์ในไฟล์นี้ หากต้องการทำลายไฟล์ ให้ใช้คำสั่ง rm (ย่อมาจาก ลบ): $rmindex.xml$ ตามค่าเริ่มต้น คำสั่ง rm ไม่ได้ถูกกำหนดค่าให้ออกคำเตือนก่อนทำลายไฟล์เสมอไป หากต้องการทำลายไดเร็กทอรี ให้ใช้คำสั่ง rmdir ซึ่งจะทำลายเฉพาะไดเร็กทอรีว่างเท่านั้น $ cd .. ตัวอย่าง $ rmdir $ ls -F $ หากต้องการทำลายไดเร็กทอรีที่มีไฟล์และไดเร็กทอรีย่อย ให้ใช้คำสั่ง rm -rf ซึ่งควรใช้ด้วยความระมัดระวังอย่างยิ่ง เนื่องจาก เนื้อหาจะถูกทำลายโดยไม่มีการเตือนล่วงหน้า หากต้องการดูเนื้อหาของไฟล์ ให้ใช้คำสั่ง more และ cat คำสั่ง more จะแสดงเนื้อหาของไฟล์เป็นชิ้นๆ (ทีละหน้าจอ) ในขณะที่คำสั่ง แมวส่งออกไฟล์ทั้งหมดพร้อมกัน เวอร์ชันที่ปรับปรุงแล้วมากขึ้นเรียกว่าน้อยลง หากต้องการดูเนื้อหาที่แสดงโดยคำสั่ง less ให้ใช้ปุ่ม B และ Space (คุณสามารถใช้ Page Up และ Page Down ได้เช่นกัน) เกือบทุกระบบของครอบครัว ยูนิกซ์รวมถึงระบบ ลินุกซ์มีเอกสารบนหน้าจอ ( หน้าคน- ข้อความในนั้นมีเอกสารประกอบเกี่ยวกับ คำสั่งของระบบ, ทรัพยากร, ไฟล์การกำหนดค่า ฯลฯ และสามารถแสดงบนหน้าจอระหว่างการทำงานได้ หากต้องการเข้าถึงเอกสารบนหน้าจอ ให้ใช้คำสั่ง man (ย่อมาจาก คู่มือ- ตัวอย่างเช่น หากต้องการดูตัวเลือกของคำสั่ง ls คุณจะต้องพิมพ์คำสั่ง ฉันจะพูดถึง การตั้งค่าเริ่มต้นระบบ CentOS ซึ่งเพิ่มความปลอดภัยและความสะดวกในการใช้งานเซิร์ฟเวอร์ ฉันทราบว่าในระบบเวอร์ชันที่ 7 มีการเปลี่ยนแปลงบางอย่างเมื่อเทียบกับเวอร์ชันก่อนหน้า
โปรดทราบว่าฉันได้เปิดการตั้งค่าเหล่านี้ไว้แล้ว เซิร์ฟเวอร์เสมือน- หากคุณมีเซิร์ฟเวอร์ฮาร์ดแวร์ ขอแนะนำให้ทำการตั้งค่าเพิ่มเติมบางอย่างที่ฉันไม่ได้กล่าวถึงในที่นี้ ซึ่งรวมถึง ตัวอย่างเช่น การตั้งค่าและการตรวจสอบความทนทานต่อข้อผิดพลาดเมื่อดิสก์ตัวใดตัวหนึ่งล้มเหลว ปิดเครื่อง การตรวจสอบเป็นประจำอาร์เรย์ mdadm ฯลฯ ก่อนอื่น มาอัพเดตระบบฐานกันก่อน: #ยำอัปเดต เพื่อความสะดวกในการดูแลระบบ ฉันจะติดตั้ง Midnight Commander เสมอ หรือเพียงแค่ mc: #ยำติดตั้งmc และทันทีที่ฉันเปิดการเน้นไวยากรณ์สำหรับไฟล์ทั้งหมดที่ไม่ได้ทำเครื่องหมายไว้อย่างชัดเจนในไฟล์ /usr/share/mc/syntax/Syntaxไวยากรณ์สำหรับสคริปต์ sh และ bash ไวยากรณ์สากลนี้ใช้ได้กับไฟล์กำหนดค่าที่คุณต้องใช้งานบนเซิร์ฟเวอร์บ่อยที่สุด การเขียนทับไฟล์ ไม่ทราบไวยากรณ์- นี่คือรูปแบบที่จะใช้กับไฟล์ .conf และ .cf เนื่องจากไม่มีไวยากรณ์ที่ชัดเจนแนบมาด้วย # cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax #ifconfig แล้วคุณจะเห็นคำตอบ: ทุบตี: ifconfig: คำสั่ง ไม่พบ
โดย อย่างน้อยเมื่อฉันเห็นสิ่งนี้ครั้งแรกฉันรู้สึกประหลาดใจมาก ฉันคิดว่าฉันทำผิดพลาดในการเขียนคำสั่ง ฉันตรวจสอบทุกอย่างซ้ำหลายครั้ง แต่ก็ไม่มีประโยชน์ ปรากฎว่าฉันต้องติดตั้งแพ็กเกจแยกต่างหากเพื่อเรียกใช้ ifconfig และยูทิลิตี้เครือข่ายอื่นๆ แทนที่จะใช้ ifconfig ใน CentOS 7 ตอนนี้มียูทิลิตี้แล้ว ไอพี- ฉันไม่เข้าใจว่าทำไมจึงต้องสร้างโปรแกรมแยกต่างหากเพื่อจัดการการตั้งค่าเครือข่าย ถ้า ifconfig ทำงานได้ดีอยู่แล้ว นอกจากนี้ฉันชอบสิ่งนั้นมาโดยตลอด การแจกแจงต่างๆ Linux เป็นเรื่องเกี่ยวกับเดียวกัน การใช้ ifconfig คุณสามารถกำหนดค่าเครือข่ายได้ไม่เฉพาะใน Linux เท่านั้น แต่ยังรวมถึงใน freebsd ด้วย สะดวกครับ. และเมื่อแต่ละการแจกแจงมีเครื่องมือของตัวเอง มันก็ไม่สะดวก ดังนั้นฉันขอแนะนำให้ติดตั้ง ifconfig ปกติ มาทำสิ่งนี้กัน: # yum ติดตั้ง net-tools ตอนนี้ เพื่อให้ nslookup หรือคำสั่งโฮสต์ทำงานได้ เราจำเป็นต้องติดตั้งแพ็คเกจ bind-utils หากยังไม่เสร็จสิ้น ให้ใช้คำสั่ง: #nslookup ผลลัพธ์จะเป็น: Bash: nslookup: ไม่พบคำสั่ง ดังนั้นเรามาติดตั้งbind-utils: # yum ติดตั้ง bind-utils ปิดการใช้งาน SELinux การใช้และการกำหนดค่าเป็นเรื่องแยกต่างหาก ฉันจะไม่ทำสิ่งนี้ตอนนี้ ลองปิดมันดู: # mcedit /etc/sysconfig/selinux เปลี่ยนค่า # รีบูต คุณสามารถปิดการใช้งาน SElinux ได้โดยไม่ต้องรีบูตเครื่อง:
อย่าใช้ daemons การซิงโครไนซ์เวลา - chrony และ ntp - พร้อมกัน เลือกหนึ่งรายการ โดยส่วนตัวแล้วฉันไม่เห็นความแตกต่างใด ๆ เลย ฉันมักจะใช้ ntp ตามปกติ เพื่อติดตั้งซอฟต์แวร์ต่าง ๆ ที่คุณต้องการ ที่ได้รับความนิยมมากที่สุดคือ EPEL และ rpmforge ดังนั้นมาเพิ่มกัน ก่อนอื่นเราติดตั้ง EPEL ทุกอย่างง่ายดายด้วยมันถูกเพิ่มจากแหล่งเก็บข้อมูลมาตรฐาน: # yum ติดตั้ง epel-release ติดตั้ง rpmforge: # rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum ติดตั้ง http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1 .el7.rf.x86_64.rpm # ยำติดตั้ง http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm จะมีประโยชน์หากทำการเปลี่ยนแปลงกลไกมาตรฐานในการบันทึกประวัติคำสั่ง มักจะช่วยได้เมื่อคุณต้องการจำคำสั่งใดคำสั่งหนึ่งที่ป้อนไว้ก่อนหน้านี้ การตั้งค่ามาตรฐานมีข้อจำกัดบางประการที่ไม่สะดวก นี่คือรายการของพวกเขา: รายการคำสั่งที่ดำเนินการล่าสุดจะถูกจัดเก็บไว้ในโฮมไดเร็กตอรี่ของผู้ใช้ในไฟล์ .bash_history(จุดที่จุดเริ่มต้น) คุณสามารถเปิดด้วยโปรแกรมแก้ไขใดก็ได้และดูได้ หากต้องการแสดงรายการให้สะดวกยิ่งขึ้น คุณสามารถป้อนคำสั่งในคอนโซล: #ประวัติศาสตร์ และดูรายการลำดับเลข คุณสามารถค้นหาคำสั่งเฉพาะได้อย่างรวดเร็วโดยใช้การกรองเท่านั้น เส้นที่ต้องการตัวอย่างเช่น: #ประวัติศาสตร์ | เยี่ยมเลย ดังนั้นเราจะเห็นตัวเลือกการเปิดตัวทั้งหมด คำสั่งยำซึ่งถูกเก็บไว้ในประวัติศาสตร์ เราจะแก้ไขข้อบกพร่องที่ระบุไว้ การตั้งค่ามาตรฐานการจัดเก็บประวัติคำสั่งใน CentOS 7 ในการดำเนินการนี้คุณต้องแก้ไขไฟล์ .bashrcซึ่งอยู่ในไดเร็กทอรีเดียวกันกับไฟล์ประวัติ เพิ่มบรรทัดต่อไปนี้ลงไป: ส่งออก HISTSIZE=10,000 ส่งออก HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="history -a" ส่งออก HISTIGNORE="ls:ll:history:w:htop" ตัวเลือกแรกจะเพิ่มขนาดไฟล์เป็น 10,000 บรรทัด คุณสามารถทำมากกว่านี้ได้ แม้ว่าปกติขนาดนี้จะเพียงพอแล้วก็ตาม พารามิเตอร์ที่สองระบุว่าควรจัดเก็บวันที่และเวลาที่ดำเนินการคำสั่ง บรรทัดที่สามจะบังคับทันทีหลังจากดำเนินการคำสั่งเพื่อบันทึกลงในประวัติ ในบรรทัดสุดท้าย เราสร้างรายการข้อยกเว้นสำหรับคำสั่งเหล่านั้นที่ไม่จำเป็นต้องบันทึกไว้ในประวัติ ฉันยกตัวอย่างรายการที่ง่ายที่สุด คุณสามารถเพิ่มได้ตามดุลยพินิจของคุณ หากต้องการใช้การเปลี่ยนแปลง คุณต้องออกจากระบบและเชื่อมต่ออีกครั้งหรือรันคำสั่ง: # แหล่งที่มา ~/.bashrc เพื่อรักษาความปลอดภัยของเซิร์ฟเวอร์ในระดับที่เหมาะสม อย่างน้อยที่สุดจำเป็นต้องอัปเดตเซิร์ฟเวอร์ให้ทันเวลา - เช่นเดียวกับเคอร์เนลเอง สาธารณูปโภคของระบบตลอดจนแพ็คเกจอื่นๆ คุณสามารถทำได้ด้วยตนเอง แต่เพื่อการทำงานที่มีประสิทธิภาพยิ่งขึ้น การดำเนินการตามปกติโดยอัตโนมัติจะดีกว่า ไม่จำเป็นต้องติดตั้งการอัปเดตโดยอัตโนมัติ แต่อย่างน้อยก็ตรวจสอบการอัปเดตเหล่านั้น ฉันมักจะทำตามกลยุทธ์นี้ สำหรับ ตรวจสอบอัตโนมัติยูทิลิตี้นี้จะช่วยให้เราอัปเดต ยำ-cron- มันถูกติดตั้งแบบดั้งเดิมผ่าน yum จากพื้นที่เก็บข้อมูลมาตรฐาน # yum ติดตั้ง yum-cron หลังจากการติดตั้งจะถูกสร้างขึ้น งานอัตโนมัติเพื่อดำเนินการยูทิลิตี้ใน /etc/cron.dailyและ /etc/cron.hourly- ตามค่าเริ่มต้น ยูทิลิตีจะดาวน์โหลดพบการอัพเดต แต่จะไม่สามารถใช้งานได้ ให้เป็นผู้ดูแลระบบภายในเครื่องแทน ตู้ไปรษณีย์การแจ้งเตือนการอัพเดตจะถูกส่งไปยังรูท ถ้าอย่างนั้นคุณก็เข้าแล้ว โหมดแมนนวลเข้ามาตัดสินใจว่าจะติดตั้งอัพเดตตามเวลาที่สะดวกสำหรับคุณหรือไม่ ฉันพบว่าโหมดการทำงานนี้สะดวกที่สุด ดังนั้นฉันจึงไม่เปลี่ยนการตั้งค่าเหล่านี้ ไฟล์การกำหนดค่า yum-cron อยู่ที่ /etc/yum/yum-cron.confและ yum-cron-hourly.conf- พวกเขาแสดงความคิดเห็นได้ดีดังนั้นใน คำอธิบายโดยละเอียดไม่ต้องการมัน ฉันดึงความสนใจของคุณไปที่ส่วนนี้
ซึ่งคุณสามารถระบุพารามิเตอร์สำหรับการส่งข้อความได้ ตามค่าเริ่มต้น เมลจะถูกส่งผ่านโลคัลโฮสต์ คุณสามารถเปลี่ยนการตั้งค่าได้ที่นี่และส่งข้อความผ่านบุคคลที่สาม เมลเซิร์ฟเวอร์- แต่โดยส่วนตัวแล้วฉันชอบกำหนดค่าการส่งต่อทั่วโลกสำหรับเซิร์ฟเวอร์ทั้งหมดแทน จดหมายท้องถิ่นรูทไปยังกล่องจดหมายภายนอกผ่านการอนุญาตบนเซิร์ฟเวอร์ smtp อื่น ในการติดตั้งเริ่มต้นของระบบ CentOS 7 บันทึกระบบทั้งหมดของคุณ /var/log/messagesหลังจากนั้นครู่หนึ่งเซิร์ฟเวอร์จะอุดตันด้วยบันทึกต่อไปนี้ 16 ต.ค. 14:01:01 xs-files systemd: สร้างผู้ใช้สไลซ์-0.slice 16 ต.ค. 14:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 14:01:01 xs-files systemd: เริ่มเซสชัน 14440 ของรูทผู้ใช้ 16 ต.ค. 14:01:01 xs-files systemd: เริ่มต้นเซสชัน 14440 ของรูทผู้ใช้ 16 ต.ค. 14:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก 16 ต.ค. 14:01:01 xs-files systemd: หยุด user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: สร้างสไลซ์ user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: เริ่มเซสชัน 14441 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มต้นเซสชัน 14441 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มเซสชัน 14442 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มต้นเซสชัน 14442 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก 16 ต.ค. 15:01:01 xs-files systemd: หยุด user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: สร้างสไลซ์ user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: เริ่มเซสชัน 14443 ของรูทผู้ใช้ 16 ต.ค. 16:01:01 xs-files systemd: เริ่มต้นเซสชัน 14443 ของรูทผู้ใช้ 16 ต.ค. 16:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก พวกมันไม่มีประโยชน์อะไร ดังนั้นเรามาปิดมันกันดีกว่า ในการทำเช่นนี้ เราจะสร้างกฎแยกต่างหากสำหรับ rsyslog โดยเราจะแสดงรายการเทมเพลตข้อความทั้งหมดที่เราจะตัด มาวางกฎนี้ในไฟล์แยกต่างหาก /etc/rsyslog.d/ignore-systemd-session-slice.conf. # cd /etc/rsyslog.d && mcedit allowance-systemd-session-slice.conf ถ้า $programname == "systemd" และ ($msg มี "Starting Session" หรือ $msg มี "Started Session" หรือ $msg มี "Created" ชิ้น" หรือ $msg มี "ผู้ใช้เริ่มต้น-" หรือ $msg มี "ชิ้นส่วนผู้ใช้เริ่มต้นของ" หรือ $msg มี "เซสชันที่ถูกลบ" หรือ $msg มี "ชิ้นส่วนผู้ใช้ที่ถูกลบออก" หรือ $msg มี "การหยุดชิ้นส่วนผู้ใช้ของ" ) จากนั้นหยุด บันทึกไฟล์และรีสตาร์ท rsyslog เพื่อใช้การตั้งค่า # systemctl รีสตาร์ท rsyslog มีความจำเป็นต้องเข้าใจว่าในกรณีนี้เราจะปิดการใช้งานฟลัดในไฟล์บันทึกเท่านั้น เซิร์ฟเวอร์ท้องถิ่น- หากคุณเก็บล็อกออนไว้ กฎนี้คุณจะต้องกำหนดค่ามัน และสุดท้ายเรามาเพิ่มบางส่วนกัน สาธารณูปโภคที่เป็นประโยชน์ซึ่งอาจเป็นประโยชน์ระหว่างการทำงานของเซิร์ฟเวอร์ iftop แสดงการโหลดอินเทอร์เฟซเครือข่ายแบบเรียลไทม์ ซึ่งสามารถเปิดใช้งานได้จาก ปุ่มที่แตกต่างกันฉันจะไม่พูดถึงรายละเอียดนี้โดยละเอียดมีข้อมูลในหัวข้อนี้บนอินเทอร์เน็ต เราใส่: #ยำติดตั้ง iftop และตัวจัดการงานที่น่าสนใจสองตัว ฉันมักใช้ htop บ่อยที่สุด แต่บางครั้งบนยอดก็มีประโยชน์ มาติดตั้งทั้งสองอย่าง ดูด้วยตัวคุณเอง ค้นหาว่าคุณชอบอะไรมากที่สุด อะไรที่เหมาะกับคุณ: # yum -y ติดตั้ง htop # yum -y ติดตั้งบนยอด นี่คือลักษณะของ htop: หากต้องการแสดงข้อมูลเกี่ยวกับไฟล์ที่ใช้โดยกระบวนการใดฉันขอแนะนำให้คุณติดตั้งยูทิลิตี้นี้ lsof- มีแนวโน้มว่าจะมีประโยชน์ไม่ช้าก็เร็วเมื่อคุณวิเคราะห์เซิร์ฟเวอร์ # yum ติดตั้ง wget bzip2 Traceroute gdisk นั่นคือทั้งหมดสำหรับฉัน ขั้นพื้นฐาน การตั้งค่า CentOS 7 เสร็จสิ้น คุณสามารถเริ่มการติดตั้งและกำหนดค่าฟังก์ชันการทำงานหลักได้ เพื่อเสร็จสิ้นการตั้งค่า เซิร์ฟเวอร์ CentOS 7 เราจะตรวจสอบให้แน่ใจว่าเมลที่ส่งถึงรูทในเครื่องนั้นถูกส่งผ่านเซิร์ฟเวอร์เมลภายนอกไปยังกล่องจดหมายที่เลือก หากยังไม่เสร็จสิ้น ระบบจะคอมไพล์ไฟล์ภายในเครื่อง /var/spool/mail/root- และอาจมีเรื่องสำคัญ ข้อมูลที่เป็นประโยชน์- มากำหนดค่าให้ส่งไปยังกล่องจดหมายของผู้ดูแลระบบ ฉันพูดคุยเกี่ยวกับเรื่องนี้โดยละเอียดในบทความแยกต่างหาก - นี่เป็นเพียงคำสั่งและ การตั้งค่าอย่างรวดเร็ว- เราใส่ แพ็คเกจที่จำเป็น: # yum ติดตั้ง mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain มาวาดคอนฟิกแบบนี้สำหรับ postfix กัน Cat /etc/postfix/main.cf ## การกำหนดค่าเริ่มต้นเริ่มต้น ###################### Que_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols =known_local_recipient_reject_code ทั้งหมด = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger _command = เส้นทาง =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & สลีป 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = ไม่มี manpage_directory = /usr/share/man Sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## การกำหนดค่าเริ่มต้น END ###################### # ชื่อเซิร์ฟเวอร์เป็นเอาต์พุตโดยคำสั่ง ชื่อโฮสต์ myhostname = centos7- ทดสอบ xs.local # ที่นี่ตามตรรกะคุณต้องเหลือเพียงโดเมน แต่ในกรณีนี้ จะดีกว่าถ้าทิ้งชื่อเต็มของเซิร์ฟเวอร์ เพื่อให้ฟิลด์ผู้ส่ง # รวมชื่อเต็มของเซิร์ฟเวอร์ สิ่งนี้ทำให้ สะดวกกว่าในการแยกวิเคราะห์ข้อความบริการ mydomain = centos7-test.xs.local mydestination = $myhostname myorigin = $mydomain # ที่อยู่เซิร์ฟเวอร์ซึ่งเราจะส่งอีเมล Relayhost = mailsrv.mymail.ru:25 smtp_use_tls = ใช่ smtp_sasl_auth_enable = ใช่ smtp_sasl_password_maps = hash :/etc/postfix/sasl_passwd smtp_sasl_security_options = tls_security_level ที่ไม่ระบุชื่อ = พฤษภาคม เราสร้างไฟล์พร้อมข้อมูลเกี่ยวกับชื่อผู้ใช้และรหัสผ่านเพื่อการอนุญาต # mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [ป้องกันอีเมล]:รหัสผ่าน สร้างไฟล์ DB # postmap /etc/postfix/sasl_passwd ตอนนี้คุณสามารถรีสตาร์ท postfix และตรวจสอบว่าใช้งานได้หรือไม่ # systemctl รีสตาร์ท postfix ไปยังนามแฝงมาตรฐานสำหรับการรูทใน /etc/นามแฝงให้เพิ่มที่อยู่ภายนอกซึ่งอีเมลที่ส่งถึงรูทจะถูกทำซ้ำ การทำเช่นนี้เราแก้ไข ไฟล์ที่ระบุ, เปลี่ยนบรรทัดสุดท้าย #root:มาร์ค ราก: ราก, [ป้องกันอีเมล]
การอัพเดตฐานข้อมูลใบรับรอง: #นามแฝงใหม่ มาส่งจดหมายผ่านคอนโซลไปยังรูทในเครื่อง: # df -h | mail -s รูท "การใช้งานดิสก์" จดหมายควรจะไปที่ ลิ้นชักด้านนอก- นี่เป็นการเสร็จสิ้นการตั้งค่าเมลในเครื่อง ตอนนี้จดหมายทั้งหมดที่ส่งถึงรูทในเครื่อง เช่น รายงานจาก cron จะถูกทำซ้ำไปยังกล่องจดหมายภายนอก และส่งผ่านเซิร์ฟเวอร์เมลปกติ ดังนั้นจดหมายจะถูกส่งตามปกติ โดยไม่กลายเป็นสแปม (ถึงแม้จะไม่จำเป็น แต่ก็มีตัวกรองการศึกษาสำนึกด้วย) เราได้ทำตามขั้นตอนเบื้องต้นในการตั้งค่าเซิร์ฟเวอร์ CentOS 7 ซึ่งเป็นสิ่งที่ฉันมักจะทำเมื่อเตรียมเซิร์ฟเวอร์ ฉันไม่เสแสร้งว่าเป็นความจริงเด็ดขาด ฉันอาจพลาดบางสิ่งบางอย่างหรือทำบางอย่างที่ไม่ถูกต้องทั้งหมด ฉันยินดีที่จะแสดงความคิดเห็นและข้อเสนอแนะที่สมเหตุสมผลและมีความหมาย จะมีประโยชน์ในการเชื่อมต่อเซิร์ฟเวอร์กับระบบตรวจสอบทันทีหลังจากการตั้งค่าพื้นฐาน หรือตั้งค่าหากคุณยังไม่มี ฉันมีบทความโดยละเอียดเกี่ยวกับการตั้งค่าการตรวจสอบ: บทความวันนี้จัดทำขึ้นโดยเฉพาะสำหรับผู้เริ่มต้นที่เพิ่งเริ่มทำความคุ้นเคยกับห้องผ่าตัด ระบบเซนโอเอส- ในบทความนี้ เราได้รวบรวมคำสั่ง 20 อันดับแรกที่จะมีประโยชน์ในการทำงานประจำวัน การจัดการเซิร์ฟเวอร์ และการแก้ไขปัญหาเบื้องต้น บ่อยครั้งเราต้องติดตั้ง โปรแกรมต่างๆ- ตามค่าเริ่มต้น ระบบจะมีเฉพาะสิ่งที่จำเป็นเท่านั้น และหากคุณต้องการสิ่งใดเป็นพิเศษ คุณจะต้องติดตั้งโปรแกรมด้วยตนเอง การติดตั้งโปรแกรม Linux นั้นง่ายกว่าการติดตั้ง Windows ในบางวิธี ส่วนใหญ่ที่นี่ โปรแกรมที่จำเป็นตั้งอยู่ในพื้นที่เก็บข้อมูลอย่างเป็นทางการ และหากต้องการติดตั้งหรืออัปเดต เพียงเรียกใช้คำสั่งเพียงไม่กี่คำสั่ง ในบทความนี้เราจะดูวิธีการติดตั้งแพ็คเกจ CentOS 7 มาดูพื้นฐานการทำงานกับตัวจัดการแพ็คเกจ yum ความสามารถของมัน การค้นหาและการแก้ไขการขึ้นต่อกันของแพ็คเกจ YUM (Yellowdog Updater Modified) เป็นตัวจัดการแพ็คเกจโอเพ่นซอร์ส ซอร์สโค้ดพัฒนาโดย RedHat เพื่อทำงานกับแพ็คเกจในรูปแบบ RPM อนุญาตให้ผู้ใช้และผู้ดูแลระบบสามารถติดตั้ง ถอนการติดตั้ง และอัปเดตแพ็คเกจบนระบบที่ใช้ RedHat โปรแกรมนี้เผยแพร่ภายใต้ ใบอนุญาต GPL(ใบอนุญาตสาธารณะทั่วไป) และผู้ใช้ใด ๆ สามารถเข้าถึงแหล่งที่มาหรือปรับปรุงโค้ดได้ ผู้จัดการแพ็คเกจรองรับการเชื่อมต่อที่เก็บข้อมูลของบุคคลที่สามและแก้ไขการพึ่งพาสำหรับการติดตั้งแพ็คเกจ สามารถดาวน์โหลดปลั๊กอินต่างๆ เพื่อปรับปรุงประสิทธิภาพของ Yum ได้ ยูทิลิตี้นี้ทำงานในคอนโซลและไวยากรณ์ของมันง่ายมาก: $ sudo yum คำสั่งตัวเลือก package_name ขั้นแรก มาดูคำสั่งพื้นฐานของตัวจัดการแพ็คเกจ: มาดูกันดีกว่า ตัวเลือกเพิ่มเติมซึ่งคุณอาจต้องการเมื่อติดตั้ง CentOS rpm: ตอนนี้คุณรู้คุณสมบัติหลักทั้งหมดของยูทิลิตี้แล้วลองดูตัวอย่างการทำงานด้วย ก่อนดำเนินการติดตั้งแพ็คเกจ CentOS คุณต้องอัปเดตรายการที่เก็บและระบบเป็นเวอร์ชันล่าสุด มีคำสั่งสำหรับสิ่งนี้: หากต้องการติดตั้งแพ็คเกจที่อยู่ในที่เก็บข้อมูลอย่างเป็นทางการ คุณเพียงแค่ต้องใช้คำสั่งติดตั้ง เพียงพิมพ์คำสั่งนี้และชื่อแพ็คเกจ เช่น Firefox: sudo yum ติดตั้งธันเดอร์เบิร์ด ระหว่างการติดตั้ง คุณจะต้องยืนยันว่าคุณต้องการติดตั้งโปรแกรมนี้โดยกดปุ่ม y เพื่อหลีกเลี่ยงปัญหานี้ ให้ใช้ตัวเลือก -y: sudo yum -y ติดตั้งธันเดอร์เบิร์ด หากต้องการดูข้อมูลเกี่ยวกับแพ็คเกจที่ติดตั้งให้ใช้คำสั่งข้อมูล: ข้อมูล sudo yum ธันเดอร์เบิร์ด หากต้องการลบแพ็คเกจ ให้ใช้คำสั่งลบ: sudo yum ลบธันเดอร์เบิร์ด เราไม่ทราบชื่อที่แน่นอนของแพ็คเกจทั้งหมด แต่ yum รองรับคุณสมบัติการค้นหาที่จะช่วยให้คุณทราบว่าควรติดตั้งแพ็คเกจ CentOS 7 ใด มีคำสั่งค้นหาสองคำสั่ง อย่างแรกคือการค้นหา - ช่วยให้คุณค้นหาแพ็คเกจตามชื่อ: sudo yum ค้นหา mysql อย่างที่สองช่วยให้คุณค้นหาแพ็คเกจที่ต้องการโดยใช้คำสั่งที่คุณต้องการในบางกรณีอาจสะดวกมาก: sudo yum ให้ lspci ตอนนี้คุณรู้แล้วว่าแพ็คเกจใดที่จำเป็นและการติดตั้ง แพ็คเกจรอบต่อนาที CentOS 7 สามารถดำเนินการให้เสร็จสิ้นได้อย่างรวดเร็ว และคุณไม่จำเป็นต้องเปิดฟอรัมมากมายเพื่อค้นหาข้อมูล กลุ่มแพ็คเกจก็เพียงพอแล้ว เครื่องมือที่มีประโยชน์- ด้วยคุณไม่สามารถติดตั้งแพ็คเกจทีละชุด แต่ติดตั้งทั้งกลุ่มในคราวเดียว ดูรายชื่อกลุ่มที่มีอยู่ก่อน: รายการกลุ่ม sudo yum ข้อมูลกลุ่ม sudo yum "เว็บเซิร์ฟเวอร์มาตรฐาน" แล้ว. เพื่อติดตั้งกลุ่มแพ็คเกจประเภท: กลุ่ม sudo yum ติดตั้ง "เว็บเซิร์ฟเวอร์มาตรฐาน" ในทำนองเดียวกัน คุณสามารถอัพเดตกลุ่มแพ็คเกจโดยไม่ต้องอัพเดตทั้งระบบ: อัปเดตกลุ่ม sudo yum "เว็บเซิร์ฟเวอร์มาตรฐาน" หรือลบ: กลุ่ม sudo yum ลบ "เว็บเซิร์ฟเวอร์มาตรฐาน" แพ็คเกจที่จำเป็นบางส่วนนั้นไม่มีอยู่ในที่เก็บข้อมูลอย่างเป็นทางการ หากพบโปรแกรมเซิร์ฟเวอร์ที่นั่นได้โดยไม่ยาก ปัญหาจะเกิดขึ้นกับโปรแกรมเดสก์ท็อปซึ่งเป็นตัวแปลงสัญญาณเดียวกัน จำเป็นต้องติดตั้งจากที่เก็บของบุคคลที่สาม ที่เก็บใน CentOS จะไม่ถูกเพิ่มผ่านทาง ไฟล์การกำหนดค่าจะถูกติดตั้งโดยการดาวน์โหลดและติดตั้ง ไฟล์รอบต่อนาทีพื้นที่เก็บข้อมูล ตัวอย่างเช่น หนึ่งในที่เก็บของบุคคลที่สามที่ใช้กันมากที่สุดคือ EPEL ตัวติดตั้งอยู่ในพื้นที่เก็บข้อมูลอย่างเป็นทางการ ดังนั้นหากต้องการเชื่อมต่อ ให้รัน: sudo yum ติดตั้ง epel-release แต่สถานการณ์นี้ไม่ได้เกิดขึ้นกับที่เก็บข้อมูลทั้งหมด ส่วนใหญ่จะเก็บไฟล์การติดตั้งไว้เอง ตัวอย่างเช่น พื้นที่เก็บข้อมูลที่มีซอฟต์แวร์มัลติมีเดีย nux ต่างๆ จะได้รับการติดตั้งต่างกัน ขั้นแรกคุณต้องดาวน์โหลดไฟล์พื้นที่เก็บข้อมูลจากลิงก์ อย่าลืมดาวน์โหลดเวอร์ชันล่าสุด ไม่เช่นนั้นจะไม่มีอะไรทำงาน ตัวอย่างเช่นบน ในขณะนี้ใหม่ล่าสุด รับ http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm จากนั้นติดตั้งแพ็คเกจที่ดาวน์โหลดมาโดยใช้ yum: sudo yum ติดตั้ง nux-dextop-release-0-5.el7.nux.noarch.rpm จากนั้นอัพเดตรายการที่เก็บและคุณสามารถติดตั้งแพ็คเกจได้: sudo yum ติดตั้ง vlc ดูรายชื่อที่เก็บ: sudo yum repolist พื้นที่เก็บข้อมูลที่มีอยู่ทั้งหมดจะแสดงที่นี่ หากต้องการลบที่เก็บ การลบแพ็กเกจก็เพียงพอแล้ว หากคุณไม่ชอบใช้เทอร์มินัล การติดตั้งโปรแกรม CentOS 7 ก็สามารถทำได้ผ่านอินเทอร์เฟซแบบกราฟิก แต่มีความเป็นไปได้น้อยกว่าในเทอร์มินัลมาก ใช้ยูทิลิตี้ "โปรแกรม"ซึ่งอยู่ในเมนูหลัก:ต้นไม้ไดเรกทอรี
แคตตาล็อกปัจจุบัน
การเข้าถึงโฮมไดเร็กตอรี่
การนำทางแผนผังไดเร็กทอรี
ดูเนื้อหาไดเร็กทอรี
การสร้างไดเรกทอรีใหม่
การสร้างไฟล์ใหม่
การเปลี่ยนเจ้าของไฟล์หรือกลุ่มไฟล์
การดูเนื้อหาไฟล์
เอกสารประกอบหน้าจอ
การตั้งค่าเริ่มต้นของ CentOS 7
ดังนั้นเราจึงมี: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP พฤหัสบดีที่ 29 มกราคม 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
SELINUX=ปิดการใช้งาน
เพื่อให้การเปลี่ยนแปลงมีผล ให้รีบูต:การระบุพารามิเตอร์เครือข่าย
การเพิ่มที่เก็บข้อมูล
การตั้งค่าที่เก็บข้อมูลประวัติใน bash_history
อัพเดตระบบอัตโนมัติ
ปิดใช้งานการฟลัดข้อความใน /var/log/messages
การติดตั้ง iftop, atop, htop, lsof บน CentOS 7
การตั้งค่าเมลระบบ
บทสรุป
ทีม
การติดตั้งแพ็คเกจบน CentOS 7
การติดตั้งแพ็คเกจ CentOS
ค้นหาแพ็คเกจ CentOS
กลุ่มแพ็คเกจ CentOS
ที่เก็บแพ็คเกจ CentOS
การติดตั้งโปรแกรม CentOS ใน GUI