Unix & Linux

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

5
บีบอัดไฟล์ขนาดใหญ่จำนวนมากอย่างรวดเร็ว
ฉันมีการสร้างข้อมูลบันทึกข้อมูลประมาณ 200 GB ต่อวันกระจายอยู่ในไฟล์บันทึกต่างๆประมาณ 150 ไฟล์ ฉันมีสคริปต์ที่ย้ายไฟล์ไปยังตำแหน่งชั่วคราวและทำ tar-bz2 ในไดเรกทอรีชั่วคราว ฉันได้รับผลลัพธ์ที่ดีเนื่องจากมีการบีบอัดบันทึก 200 GB ถึงประมาณ 12-15 GB ปัญหาคือมันใช้เวลาตลอดไปในการบีบอัดไฟล์ cronงานทำงานที่ 02:30 ทุกวันและยังทำงานต่อไปจนถึง 5: 00-6: 12:00 มีวิธีปรับปรุงความเร็วของการบีบอัดและทำให้งานเสร็จเร็วขึ้นหรือไม่ ความคิดใด ๆ ไม่ต้องกังวลกับกระบวนการอื่น ๆ ทั้งหมดตำแหน่งที่มีการบีบอัดเกิดขึ้นบนNASและฉันสามารถเรียกใช้ NAS บนVMเฉพาะและเรียกใช้สคริปต์การบีบอัดจากที่นั่น นี่คือการส่งออกของด้านบนสำหรับการอ้างอิง: top - 15:53:50 up 1093 days, 6:36, 1 user, load average: 1.00, 1.05, 1.07 Tasks: 101 total, 3 running, …

1
เหตุใด bash fork bombs จึงทำงานต่างกันและความสำคัญของมันคืออะไร?
ฉันรู้ว่า Fork fork แบบธรรมดาทำงานได้อย่างไร แต่ฉันไม่เข้าใจว่าทำไม & ในตอนท้ายของการวางระเบิด bash fork ทั่วไปและทำไมสคริปต์เหล่านี้จึงมีความแตกต่าง: :(){ (:) | (:) }; : และ :(){ : | :& }; : อดีตทำให้การใช้งาน cpu ขัดขวางก่อนที่จะทิ้งฉันกลับไปที่หน้าจอเข้าสู่ระบบ หลังทำให้ระบบของฉันค้างแข็งแทนที่จะบังคับให้ฉันรีบูตยาก ทำไมถึงเป็นอย่างนั้น? ทั้งสองอย่างต่อเนื่องสร้างกระบวนการใหม่ดังนั้นทำไมระบบทำงานแตกต่างกันอย่างไร สคริปต์ทั้งสองยังทำงานแตกต่างจาก :(){ : | : }; : ซึ่งไม่ได้ทำให้เกิดปัญหาใด ๆ เลยถึงแม้ว่าฉันจะคาดหวังให้พวกเขาเหมือนกัน หน้าคู่มือทุบตีระบุว่าคำสั่งในไปป์ไลน์ถูกดำเนินการแล้วใน subshell ดังนั้นฉันจึงเชื่อว่า: | : ควรเพียงพอแล้ว ฉันเชื่อ & ควรเรียกใช้ไปป์ไลน์ใน subshell ใหม่ …

2
วิธีลบการเชื่อมต่อโดยใช้ชื่อผ่าน Network Manager
คุณใช้วิธีnmcliลบการเชื่อมต่อ wifi ด้วยชื่อได้อย่างไร จากสิ่งที่ฉันได้อ่านจะอนุญาตเฉพาะการลบผ่าน UUID: nmcli connection delete <uuid> วิธีที่ง่ายที่สุดที่ฉันพบว่าลบตามชื่อคือการค้นหา UUID จากชื่อและส่งผ่านสิ่งต่อไปนี้ใน: nmcli con delete `nmcli --fields NAME,UUID con list | grep -i mynetworkname | awk '{print $2}'` มีวิธีที่ง่ายกว่า?

12
ลบบรรทัดที่ซ้ำกันเป็นคู่หรือไม่
ฉันพบกรณีใช้งานวันนี้ มันดูเหมือนง่ายได้อย่างรวดเร็วก่อน แต่เล่นซอรอบกับsort, uniq, sedและawkเผยให้เห็นว่ามันเป็นขี้ปะติ๋ว ฉันจะลบบรรทัดที่ซ้ำกันทุกคู่ได้อย่างไร กล่าวอีกนัยหนึ่งหากมีจำนวนซ้ำของบรรทัดที่กำหนดให้ลบทั้งหมด; หากมีจำนวนบรรทัดที่ซ้ำกันเป็นเลขคี่ลบทั้งหมดยกเว้นหนึ่งบรรทัด (สามารถป้อนข้อมูลการเรียงลำดับได้) วิธีการแก้ปัญหาที่สง่างามสะอาดเป็นที่ต้องการ อินพุตตัวอย่าง: a a a b b c c c c d d d d d e ตัวอย่างผลลัพธ์: a d e

2
cronds จัดการกับฤดูร้อนเวลาเปลี่ยน 1 ชั่วโมง
สุดสัปดาห์ที่แล้วเราต้องเปลี่ยนเวลาจาก 02:00 เป็น 03:00 คำถาม:จะเกิดอะไรขึ้นถ้ามี cronjob ในเวลา 02:30 น. crond เป็นคำตอบที่เก่ามากสำหรับการตั้งเวลามันน่าจะจัดการได้ แต่ไม่รู้ว่าจะทำอย่างไร
16 cron  clock  dst 

7
กระชับ bash พรอมต์เมื่อใช้ต้นไม้ไดเรกทอรี / ชื่อไฟล์
ในระบบที่มี Ubuntu 14.04 และbashฉันมีPS1ตัวแปรลงท้ายด้วยเนื้อหาดังต่อไปนี้: \u@\h:\w\$ เพื่อให้พรอมต์ปรากฏเป็น user@machinename:/home/mydirectory$ อย่างไรก็ตามบางครั้งไดเรกทอรีปัจจุบันมีชื่อยาวหรืออยู่ภายในไดเรกทอรีที่มีชื่อยาวเพื่อให้พรอมต์ดูเหมือน user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$ วิธีนี้จะเติมบรรทัดในเทอร์มินัลและเคอร์เซอร์จะไปยังอีกบรรทัดหนึ่งซึ่งน่ารำคาญ ฉันต้องการที่จะได้รับบางสิ่งบางอย่างแทน user@machinename:/home/mydirectory1/...another_long_name$ มีวิธีการกำหนดPS1ตัวแปรเพื่อ "ห่อ" และ "กระชับ" ชื่อไดเรกทอรีเพื่อไม่เกินจำนวนอักขระที่กำหนดรับพรอมต์ที่สั้นลงหรือไม่

3
upowerd ใช้ cpu 100%
upowerd ใช้ CPU เกือบ 100% ขณะนี้ฉันได้รับผลกระทบจากปัญหานี้ทั้ง Lenovo Thinkpad E520 และบนเดสก์ท็อปพีซีที่ใช้มาเธอร์บอร์ด Core i7 และ Asus Z170a ทั้งคู่วิ่ง Kubuntu 15.10 อย่างไรก็ตามฉันได้พบรายงานของปัญหานี้ใน distros ที่แตกต่างกันหลาย (จาก Fedora เพื่อ Arch เพื่อ Ubuntu) จะกลับมาหลายปี ฉันพบรายงานข้อผิดพลาดเหล่านี้ แต่ไม่พบวิธีแก้ไขปัญหาหรือวิธีแก้ไขปัญหา: FS # 40444: [upower] upowerd 0.99.0-2 กินทรัพยากรทั้งหมด https://bugs.archlinux.org/task/40444 Bug # 861642“ upowerd ใช้ 100% cpu จนกระทั่งถูกฆ่า”: ข้อบกพร่อง: แพ็คเกจ upower: Ubuntu …

3
วิธีการแปลงอิโมติคอนที่ระบุโดยรหัส U + xxxxx เป็น utf-8
อิโมติคอนดูเหมือนจะถูกระบุโดยใช้รูปแบบของ U + xxxxx โดยที่แต่ละ x เป็นเลขฐานสิบหก ตัวอย่างเช่นU + 1F615เป็นรหัส Unicode Consortium อย่างเป็นทางการสำหรับ "สับสนใบหน้า" 😕 เมื่อฉันสับสนบ่อยฉันมีความสัมพันธ์ที่ดีต่อสัญลักษณ์นี้ การแทนU + 1F615ทำให้ฉันสับสนเพราะฉันคิดว่าการเข้ารหัสที่เป็นไปได้สำหรับอักขระ Unicode ต้องใช้ 8, 16, 24 หรือ 32 บิตในขณะที่ 5 หลักเลขฐานสิบต้องมี 5x4 = 20 บิต ฉันได้ค้นพบว่าสัญลักษณ์นี้น่าจะเป็นสตริงเลขฐานสิบหกที่แตกต่างกันโดยสิ้นเชิงใน bash: $echo -n 😕 | hexdump 0000000 f0 9f 98 95 0000004 $echo -e "\xf0\x9f\x98\x95" 😕 …

5
วิธีการรันสคริปต์แบบขนานบนเครื่องระยะไกล
ฉันสามารถ ssh ลงในเครื่องระยะไกลที่มี 64 คอร์ ให้บอกว่าฉันต้องรันเชลล์สคริปต์ 640 แบบขนานบนเครื่องนี้ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันเห็นการแบ่ง 640 สคริปต์ออกเป็น 64 กลุ่มแต่ละ 10 สคริปต์ ฉันจะเรียกใช้แต่ละกลุ่มเหล่านี้แบบขนานได้อย่างไรเช่นหนึ่งกลุ่มในแต่ละแกนที่มีอยู่ จะสคริปต์ของแบบฟอร์ม ./script_A & ./script_B & ./script_C & ... ที่script_Aสอดคล้องกับกลุ่มแรกscript_Bไปยังกลุ่มที่สอง ฯลฯ พอเพียง? สคริปต์ภายในกลุ่มหนึ่งที่รันบนแกนหลักนั้นสามารถเรียกใช้ตามลำดับได้ แต่ฉันต้องการให้กลุ่มทำงานขนานกันทั่วทุกแกน

2
วิธีการตั้งค่าข้อความไดนามิกของวัน (motd) ใน Debian Jessie 8.2 สำหรับ ssh?
ฉันต้องการมี motd แบบไดนามิก แต่ฉันไม่สามารถหาวิธีที่จะทำ ฉันพยายามสิ่งที่ฉันพบเพิ่ม/etc/update-motd.d/00-header, 10-sysinfo, 90-footerและ symlinking ไป/etc/motd /var/run/motd.dynamic, /run/motd.dynamic, หรือ/run/motd/var/run/motd ฉันมีบรรทัดเหล่านี้ใน/etc/pam.d/sshd: # Print the message of the day upon successful login. # This includes a dynamically generated part from /run/motd.dynamic # and a static (admin-editable) part from /etc/motd. session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate ฉันยังสับสนกับ systemd …
16 debian  ssh  systemd  motd 

2
ทำไมการใช้ 'ใช่' บนท่อทุบตี * ไม่ * ทำให้เกิดลูปไม่สิ้นสุด?
ตามเอกสารของมันทุบตีรอจนกว่าคำสั่งทั้งหมดในไปป์ไลน์ได้เสร็จสิ้นการทำงานก่อนที่จะดำเนินการต่อไป เชลล์รอคำสั่งทั้งหมดในไปป์ไลน์เพื่อยกเลิกก่อนที่จะส่งคืนค่า เหตุใดคำสั่งจึงyes | trueเสร็จสิ้นในทันที ไม่ควรyesวนซ้ำตลอดไปและทำให้ท่อไม่เคยกลับมาใช่ไหม และคำถามย่อย: ตามข้อมูลจำเพาะของ POSIXท่อส่งเชลล์อาจเลือกที่จะส่งคืนหลังจากคำสั่งสุดท้ายเสร็จสิ้นหรือรอจนกว่าคำสั่งทั้งหมดจะเสร็จสิ้น กระสุนทั่วไปมีพฤติกรรมแตกต่างกันในแง่นี้หรือไม่? มีกระสุนที่ไหนบ้างที่yes | trueจะวนซ้ำตลอดไป?
16 bash  shell  pipe 

4
รันงาน cron หลายงานโดยที่งานเดียวใช้เวลานาน
ฉันมีคำถามทั่วไปเกี่ยวกับงาน cron สมมติว่าฉันมีต่อไปนี้ในของฉันcrontab: * 10 * * * * someScript.sh * 11 * * * * someScript2.sh 30 11 */2 * * someScript3.sh <-- Takes a long time let's say 36 hours. * 12 * * * someScript4.sh มันฉลาดพอที่จะทำงานที่เหลือตามเวลาที่เหมาะสมหรือไม่? ตัวอย่างเช่นสคริปต์แบบยาวไม่จำเป็นต้องยกเลิก นอกจากนี้จะเกิดอะไรขึ้นถ้าสคริปต์ยาวเริ่มต้นยังคงทำงานอยู่และจะถูกเรียกโดย cron อีกครั้ง ขอขอบคุณ!
16 cron 

1
เป็นไปได้ไหมที่จะย้ายหน้าต่างจากหน้าจอ X หนึ่งไปยังอีกหน้าจอหนึ่งบนโฮสต์เดียวกัน
ฉันใช้ XFCE 4.12 โดยมีการตั้งค่าจอภาพ 3 จอเป็นสองหน้าจอ X และการ์ดวิดีโอสองอันบนคอมพิวเตอร์เครื่องเดียวกัน จอภาพสองจอสร้างหน้าจอ X เดียวโดยใช้ฟังก์ชั่น nvidia twinview ซึ่งก็คือ Screen0 บน Device0 ใน Xorg config จอภาพที่ 3 ใช้สำหรับหน้าจอที่สองซึ่งเป็น Screen1 บน Device1 ใน Xorg config ฉันสามารถลากหน้าต่างละเอียดระหว่างจอภาพบน Screen0 ฉันยังสามารถเลื่อนเมาส์ได้อย่างอิสระระหว่าง Screen0 และ Screen1 และแม้แต่ข้อมูลคลิปบอร์ดก็ถูกนำไปใช้ระหว่างหน้าจอ X สองหน้าจอได้ หน้าจอ X ทั้งสองนี้ทำหน้าที่เป็นเดสก์ท็อปอิสระที่มีวิวพอร์ตของตนเอง ฉันชอบวิธีนี้และมันมีประโยชน์ในการทำด้านหนึ่ง "ติด" โดยอัตโนมัติ อย่างไรก็ตามถ้าฉันเริ่มโปรแกรมบนหน้าจอ X หนึ่งฉันไม่สามารถย้ายมันไปที่หน้าจอ X อีกอันได้โดยเพียงแค่ลากมัน หากฉันต้องการเรียกใช้โปรแกรมนั้นในหน้าจออื่นฉันต้องรีสตาร์ทโปรแกรมบนหน้าจอนั้น …
16 x11  xorg 

4
ฉันสามารถ telnet ไปยังพอร์ต HTTP 80 ได้อย่างไร
หลังจากค้นหาใน google ฉันพบว่าเราสามารถtelnetไปยังเว็บเซิร์ฟเวอร์ไปยังพอร์ต http ของมันและใช้GETเพื่อดึงหน้า html ตัวอย่างเช่น: $ telnet web-server-name 80 แต่ฉันไม่สามารถเข้าใจว่าเป็นไปได้อย่างไร ฉันคิดว่าถ้าพอร์ต 80 สำหรับเซิร์ฟเวอร์ http พอร์ต 80 จะรับฟังhttpคำขอเท่านั้น แต่ฉันจะtelnetไปยังHTTPพอร์ตได้อย่างไร ไม่ได้telnetและHTTPสองโปรโตคอลที่แตกต่างกันอย่างไร

3
ตัวเลขทั้งสองหมายถึงอะไรตามลำดับในสถิติ“ a + b records” ของ dd
2 บรรทัดแรกในddสถิติมีรูปแบบต่อไปนี้: a+b records in c+d records out ทำไมต้องเป็นตัวเลข 2 ค่า เครื่องหมายบวกนี้หมายความว่าอย่างไร ปกติa+0แล้วบางครั้งเมื่อฉันใช้ขนาดบล็อกที่ใหญ่กว่า dd ก็พิมพ์ออกมา0+b records out
16 dd 

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