Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

3
การเริ่มต้น Apache เป็นบริการที่เลิกกับ SIGWINCH
เมื่อทำงานservice apache startฉันเห็นในล็อกไฟล์รายการนี้: [mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix) OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations [core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd' [mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully และบริการapacheไม่เริ่มทำงาน ฉันสามารถหาได้จากอินเทอร์เน็ตในความSIGWINCHหมายของ [ Window size change] แต่มันไม่ได้ช่วยฉันในกรณีนี้ ไฟล์/etc/systemd/system/apache.service: [Unit] Description=The Apache Webserver [FaF Compiled] After=network.target …

5
bash + using printf เพื่อพิมพ์ในรูปแบบพิเศษ
ฉันเพิ่งเขียนสคริปต์ทุบตีต่อไปนี้เพื่อตรวจสอบการเข้าถึง ping ในรายการของเครื่อง Linux: for M in $list do ping -q -c 1 "$M" >/dev/null if [[ $? -eq 0 ]] then echo "($C) $MACHINE CONNECTION OK" else echo "($C) $MACHINE CONNECTION FAIL" fi let C=$C+1 done ภาพพิมพ์นี้: (1) linux643 CONNECTION OK (2) linux72 CONNECTION OK (3) linux862 CONNECTION OK …

3
สร้างไฟล์เก็บถาวรด้วยคำสั่ง“ gzip”
ฉันต้องสร้างไฟล์เก็บถาวรด้วยคำสั่ง gzip (ไม่ใช่ tar - มันจำเป็น) และไฟล์เก็บถาวรควรมีไฟล์จากไดเรกทอรีอื่น - ตัวอย่างเช่น / etc ฉันพยายามใช้คำสั่ง gzip myetc.gz /etc แต่มันไม่ทำงาน
12 gzip  archive 

5
network.service ล้มเหลวในการเริ่มต้น LSB: นำเครือข่ายขึ้น / ลง - Centos 7
ฉันกำลังประสบปัญหากับ Centos7 เมื่อพยายามเริ่มบริการเครือข่าย ฉันได้รับข้อความแสดงข้อผิดพลาดด้านล่าง Failed to start LSB: Bring up/down networking ปัญหาเกิดขึ้นเมื่อฉันรู้ว่าไม่ได้ใช้ที่อยู่ IP แบบคงที่ของฉันจากไฟล์ / etc / sysconfig / network-script / ifcfg-eth0 (พบด้านล่าง) DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.0.16 NETMASK=255.255.255.0 HWADDR=B8:27:EB:C3:1E:EC NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet เมื่อรีบูทอุปกรณ์จะโหลดด้วยที่อยู่ IP 192.168.0.7 ไม่ชัดเจนว่าได้รับการกำหนดที่อยู่ IP แบบคงที่และไม่แน่ใจว่าจะรับข้อมูลของเซิร์ฟเวอร์ DHCP ได้อย่างไร (ซึ่งฉันมีเราเตอร์ของฉัน) ฉันพยายามปิดการใช้งาน NetworkManager เนื่องจากอาจทำให้เกิดความเสียหายกับบริการเครือข่ายโดยใช้คำสั่งด้านล่าง systemctl stop NetworkManager จากนั้นเปิดใช้งานเครือข่าย systemctl start network …

1
systemd-networkd - วิธีบังคับให้มีการกำหนดค่าใหม่โดยไม่ต้องรีบูต?
บนกล่อง Arch ของฉันฉันมีบริดจ์เครือข่าย เป้าหมายคือการลบบริดจ์และใช้อะแดปเตอร์เครือข่ายที่ไม่ได้เชื่อมต่อเท่านั้น ในการดำเนินการดังกล่าวฉันได้ลบไฟล์กำหนดค่า * .netdev และ * .network ทั้งหมดภายใต้/etc/systemd/networkและแทนที่ด้วยไฟล์ง่าย ๆ หนึ่งไฟล์: /etc/systemd/network/lan.network -------------------------------- [Match] eno* [Network] DHCP=ipv4 จากนั้นฉันเริ่มใช้บริการเครือข่ายใหม่โดยsystemctl restart systemd-networkdสันนิษฐานว่านี่จะทำให้ฉันมีเพียงแค่loและeno*อินเตอร์เฟส แต่น่าเสียดายที่สิ่งนี้ไม่มีผล ดูอย่างรวดเร็วที่ip linkยังคงแสดงให้เห็นว่าอินเตอร์เฟซบริดจ์ขึ้นและใช้งาน เนื่องจากสถานะการออนไลน์ในกรณีนี้ไม่สำคัญฉันเพิ่งรีบูตเครื่องซึ่งแก้ไขปัญหา ถึงกระนั้นฉันก็คิดว่าการรีบูตเครื่องไม่ควรจำเป็นสำหรับสิ่งนี้ ฉันพลาดทำอะไร

4
ข้อผิดพลาดดิสก์เงียบและความน่าเชื่อถือของการแลกเปลี่ยน Linux
ความเข้าใจของฉันคือฮาร์ดไดรฟ์และ SSD ใช้การแก้ไขข้อผิดพลาดพื้นฐานภายในไดรฟ์และการกำหนดค่า RAID ส่วนใหญ่เช่น mdadm จะขึ้นอยู่กับสิ่งนี้เพื่อตัดสินใจว่าเมื่อใดที่ไดรฟ์ล้มเหลวในการแก้ไขข้อผิดพลาดและจำเป็นต้องออฟไลน์ อย่างไรก็ตามขึ้นอยู่กับการจัดเก็บที่ถูกต้อง 100% ในการวิเคราะห์ข้อผิดพลาด ไม่เช่นนั้นและการกำหนดค่าทั่วไปเช่นมิเรอร์ RAID-1 แบบสองไดรฟ์จะมีความเสี่ยง: สมมติว่าบิตบางส่วนบนไดรฟ์หนึ่งเสียหายอย่างเงียบ ๆ และไดรฟ์ไม่รายงานข้อผิดพลาดการอ่าน ดังนั้นระบบไฟล์เช่น btrfs และ ZFS จะใช้เช็คซัมของตัวเองเพื่อที่จะไม่ไว้วางใจเฟิร์มแวร์ของรถบั๊กกี้สายเคเบิลที่มีความผิดพลาดของสาย SATA และอื่น ๆ ในทำนองเดียวกัน RAM ยังมีปัญหาความน่าเชื่อถือและทำให้เรามี ECC RAM เพื่อแก้ไขปัญหานี้ คำถามของฉันคือสิ่งที่เป็นวิธีที่บัญญัติในการป้องกันไฟล์ swap Linux จากความเสียหายเงียบ / บิตเน่าไม่ได้จับโดยเฟิร์มแวร์ไดรฟ์ในการกำหนดค่าสองดิสก์ (เช่นการใช้ไดรเวอร์เคอร์เนล mainline)? สำหรับฉันแล้วดูเหมือนว่าการกำหนดค่าที่ไม่มีการป้องกันแบบครบวงจรที่นี่ (เช่นที่จัดทำโดย btrfs) จะลบล้างความสงบของจิตใจที่นำมาจาก ECC RAM แต่ฉันไม่สามารถคิดวิธีที่ดี: btrfs ไม่รองรับ swapfiles เลย คุณสามารถตั้งค่าอุปกรณ์ลูปจากไฟล์ …

2
วิธีกำหนดค่า Ctrl + w เป็นลบคำใน zsh
ฉันต้องการลบคำด้วยCtrl+ Win zshlike vim /foo/bar^W vim /foo/ และพบทางออกสำหรับbashแต่bindไม่ได้อยู่ในฟังก์ชั่น zsh เป็นไปได้ไหมที่จะกำหนดค่า ctrl-w (ลบคำ)? ฉันจะกำหนดค่าCtrl+ Wเป็น a ได้delete-wordอย่างไร

1
ฉันจะบูตจากไฟล์ ISO ที่เก็บไว้ในฮาร์ดดิสก์ได้อย่างไร
ฉันรู้ว่าฉันสามารถสร้าง / เขียนซีดี / ดีวีดีที่สามารถบูตได้หรือ USB สดและสามารถบูต / ติดตั้งได้ แต่สมมติว่าฉันใช้ GNU / Linux อยู่ในขณะนี้และฉันเป็นไฟล์ ISO ของ GNU / Linux อื่นที่ฉันต้องการติดตั้งบนฮาร์ดดิสก์ของฉันจากนั้นฉันสามารถบูตจาก ISO จากฮาร์ดดิสก์โดยตรงและลอง / ติดตั้งระบบปฏิบัติการ GNU / Linux ?

2
ฉันจะหาบันทึกการเริ่มระบบได้ที่ Debian 8 (เพื่อดีบักปัญหา autostart) ได้อย่างไร
ฉันพยายามแก้ไขข้อผิดพลาดว่าทำไมบางแอปไม่สามารถเริ่มอัตโนมัติ (แพ็คเกจอัตโนมัติ) สถานที่ตั้ง: เป้าหมายสุดท้ายของฉันคือการเข้าใจว่าเหตุใดลำดับลำดับเริ่มต้นอัตโนมัติจึงใช้งานไม่ได้ บูตเดเบียนเองปกติ แต่คุณสมบัติการเริ่มอัตโนมัติไม่ทำงานอย่างถูกต้อง ดังนั้นฉันต้องการที่จะผ่านบันทึกการบูต (ใน / var / log / daemon ฉันไม่พบสิ่งที่ฉันกำลังมองหา) ตามDebian Wikiฉันควรปรับการบูตที่/ var / log / bootโดยไม่มีการกำหนดค่าใด ๆ ใน Debian 8 อย่างไรก็ตามไฟล์ไม่ได้อยู่ที่นั่น wiki ยังพูดว่า: ถ้าคุณใช้ systemd เป็นระบบ init ของคุณคุณอาจจำเป็นต้องใช้systemctlในการปัญหาบูตแก้ปัญหา ดังนั้นฉันจึงลองด้วย sudo systemd แต่ฉันได้รับข้อผิดพลาด กำลังพยายามเรียกใช้เป็นอินสแตนซ์ผู้ใช้ แต่ไม่ได้ตั้งค่า $ XDG_RUNTIME_DIR
12 debian  startup 

1
บีบอัดไฟล์โดยไม่รวมไดเรกทอรีหลัก
ฉันมีโฟลเดอร์ที่มีหลายไฟล์ โฟลเดอร์ artifact1.app artifact2.ext2 artifact3.ext3 ... เป้าหมายของฉันคือการซิปไฟล์จากนอกโฟลเดอร์นี้ (ดังนั้นโดยไม่ต้องใช้cdคำสั่ง) โดยไม่รวมโฟลเดอร์ dir zip -r ./folder/artifact.zip ./folder/artifact1.app คำสั่งนี้รวมถึงโฟลเดอร์ dir ในรหัสไปรษณีย์สุดท้าย คำใบ้ใด ๆ คำถามที่เกี่ยวข้อง: ซิปเนื้อหาของโฟลเดอร์โดยไม่ต้องรวมโฟลเดอร์เอง
12 zip 


2
ทดสอบการรองรับอาร์เรย์โดยเชลล์
มีวิธีรัดกุมในการทดสอบเพื่อสนับสนุนอาร์เรย์โดยเชลล์คล้าย Bourne ในบรรทัดคำสั่งหรือไม่ สิ่งนี้เป็นไปได้เสมอ: $ arr=(0 1 2 3);if [ "${arr[2]}" != 2 ];then echo "No array support";fi หรือการทดสอบ$SHELLและรุ่นเปลือก: $ eval $(echo "$SHELL --version") | grep version จากนั้นอ่าน man page โดยสมมติว่าฉันสามารถเข้าถึงได้ (ถึงตรงนั้น, เขียนจาก/bin/bash, ฉันสมมติว่าเชลล์เหมือนบอร์นทั้งหมดยอมรับตัวเลือกแบบยาว--version, เมื่อแบ่งเช่น ksh เป็นต้น ) ฉันกำลังมองหาการทดสอบอย่างง่ายที่อาจไม่ต้องใส่ข้อมูลและรวมไว้ในส่วนการใช้งานที่จุดเริ่มต้นของสคริปต์หรือแม้กระทั่งก่อนที่จะเรียกมัน

1
การดักจับและ subshells โดยนัยในเชลล์สคริปต์
สมมติว่าคุณมีเชลล์สคริปต์ที่รันโค้ดการล้างข้อมูลบางประเภทผ่านEXITกับดักเช่นนี้: #!/bin/bash mytrap () { echo "It's a trap!" >&2 } trap mytrap exit echo I am at the end of the script. สิ่งนี้จะพิมพ์ออกมาIt's a trap!เมื่อสคริปต์ออก: $ sh myscript I am at the end of the script. It's a trap! คุณปรับเปลี่ยนสคริปต์เพื่อเพิ่มฟังก์ชั่นที่สร้างผลลัพธ์บางอย่างที่ได้รับการไพพ์ไปยังคำสั่งอื่นในท้ายที่สุดดังนี้: #!/bin/bash mytrap () { echo "It's a trap!" >&2 …
12 shell  trap 

1
ความแตกต่างเมื่อใช้ FIND ระหว่าง -name และ -iname
คำถามก็คือทุกอย่างฉันเห็นทั้งคู่แล้ว find -name และ find -iname ใช้ทั่วทุกสถานที่โดยไม่มีรูปแบบที่มองเห็นได้ มีใครอธิบายความแตกต่างบางทีมีตัวอย่างให้อธิบาย
12 find 

1
ทำไม“ cp -R --reflink = always” ทำการคัดลอกมาตรฐานในระบบไฟล์ btrfs?
Btrfs รองรับการคัดลอกเมื่อเขียน ฉันพยายามใช้คุณสมบัตินั้นเพื่อโคลนไดเรกทอรี: cp -R --reflink=always foo_directory foo_directory.mirror ฉันคาดว่าคำสั่งจะเสร็จสิ้นเกือบจะในทันที (เหมือนกbtrfs subvolume snapshot) แต่cpดูเหมือนว่าคำสั่งจะทำสำเนามาตรฐานช้า ตามหน้า man, ฉันคาดว่า--reflink=alwaysจะบังคับใช้ Copy-On-Write: เมื่อระบุ --reflink [= always] ให้ทำสำเนาแบบ Lightweight ซึ่งบล็อกข้อมูลจะถูกคัดลอกเฉพาะเมื่อมีการแก้ไข หากไม่สามารถทำสำเนาได้หรือหาก --reflink = auto ถูกระบุให้ถอยกลับไปเป็นสำเนามาตรฐาน คำถาม: คุณรู้ไหมว่าทำไม--reflink=alwaysไม่ทำงาน ฉันควรใช้ตัวเลือกใด (หรือคำสั่งอื่น) แทน?
12 cp  btrfs 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.