Unix & Linux

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

3
ข้อผิดพลาดในการดักจับในการทดแทนคำสั่งโดยใช้“ -o errtrace” (เช่น set -E)
ตามคู่มืออ้างอิงนี้: -E (เช่น -o errtrace) หากตั้งค่ากับดักใด ๆ บน ERR จะได้รับมรดกโดยฟังก์ชั่นของเชลล์การแทนที่คำสั่งและคำสั่งที่ดำเนินการในสภาพแวดล้อม subshell กับดัก ERR โดยปกติจะไม่สืบทอดในกรณีเช่นนี้ อย่างไรก็ตามฉันต้องตีความอย่างผิด ๆ เพราะสิ่งต่อไปนี้ใช้ไม่ได้: #!/usr/bin/env bash # -*- bash -*- set -e -o pipefail -o errtrace -o functrace function boom { echo "err status: $?" exit $? } trap boom ERR echo $( made up name ) …

1
วิธีการกำหนดค่า Linux เพื่อแคชข้อมูลเมตาของไฟล์ในการตั้งค่าเนื้อหา?
ฉันต้องการตั้งค่าระบบให้ใช้ RAM ส่วนใหญ่สำหรับการแคชเมตะดาต้าของระบบไฟล์ แต่มีจำนวนน้อยพอสมควรสำหรับการอ่าน / เขียนแคชและไฟล์ดึงข้อมูลล่วงหน้า เป็นการดีที่ฉันจะสามารถเรียกดูระบบไฟล์ (เท่าที่เหมาะกับ RAM) โดยไม่ต้องหมุนดิสก์จนกว่าฉันจะเปิดไฟล์จริง นี่คือรายละเอียด: ฉันมีไฟล์เซิร์ฟเวอร์ที่ทำที่บ้าน มันมีดิสก์ห้าตัวในปริมาณ LVM ประมาณ 9TB แต่ RAM 4GB เท่านั้น เนื่องจากเซิร์ฟเวอร์ไม่ทำอะไรมากแล้วให้บริการไฟล์ RAM ส่วนใหญ่จึงใช้สำหรับการแคช (“ ฟรี” รายงาน 3.4G จาก 3.9G ที่ใช้สำหรับแคช) เซิร์ฟเวอร์อาศัยอยู่ในห้องนอนของฉันและหากดิสก์ทั้งหมดหมุนไปมันจะมีเสียงดังพอที่จะน่ารำคาญเมื่อมันเงียบ (ฉันไม่ได้หมายถึงการค้นหาเสียงรบกวนเพียงแค่การหมุนเท่านั้นเสียงดิสก์มีหลายยี่ห้อและรุ่นต่าง ๆ และฉันคิดว่าความแตกต่างเล็กน้อยในความเร็วการหมุนทำให้เกิดการรบกวนไม่มีดิสก์ตัวใดมีเสียงดังด้วยตัวเอง มีเสียงรบกวนเล็กน้อยกับช่วงเวลาย่อยเฮิรตซ์) ดังนั้นฉันจึงกำหนดค่าเซิร์ฟเวอร์ให้ดิสก์หมุนวนเป็นส่วนใหญ่ แน่นอนหากดิสก์หมุนตัวเมื่อฉันเปิดโฟลเดอร์ในตัวจัดการไฟล์ของฉันมีความล่าช้าในขณะที่ดิสก์ใดมีโฟลเดอร์นั้นหมุนขึ้น เพียงแค่นั้นไม่ใช่เรื่องใหญ่ แต่ขึ้นอยู่กับที่ฉันมองมันอาจเกิดขึ้นหลายครั้งในแถวถ้า LVM เกิดขึ้นเพื่อกระจายข้อมูลเมตาสำหรับแต่ละโฟลเดอร์ย่อยบนดิสก์ที่แตกต่างกัน ฉันสงสัยว่า Linux ส่วนใหญ่เติมแคชด้วยเนื้อหาไฟล์และอาจมีการดึงข้อมูลล่วงหน้า การแคชไม่มีประโยชน์มากเกินกว่าสองสาม MB เพื่อให้เล่นได้อย่างราบรื่น ถ้าฉันเพิ่งดูหนังฉันอาจจะไม่ได้ดูอีกครั้งในไม่ช้า การดึงข้อมูลล่วงหน้าหากเกิดขึ้นก็ไม่ได้ผลอย่างสมบูรณ์ในกรณีของฉันหลังจากผ่านไปไม่กี่ MB …

2
“ INFO: task XXX ถูกบล็อกนานกว่า 120 วินาที” หมายถึงอะไรบน Linux?
ฉันมีข้อความนี้ในบันทึกเคอร์เนลของฉัน: INFO: task XXX blocked for more than 120 seconds. ฉันต้องการทราบความหมายทางเทคนิค: เคอร์เนลแสดงข้อความเกี่ยวกับงานภายใต้เงื่อนไขใด สำหรับบันทึกงานที่ถูกบล็อกของฉันคือmultipathdแต่ฉันก็สนใจในความหมายทั่วไปของข้อผิดพลาดนี้

2
ฉันจะเน้นบรรทัดปัจจุบันและเคอร์เซอร์ใน. vimrc ได้อย่างไร
ฉันกำลังพยายามเน้นบรรทัดปัจจุบันรวมถึงตำแหน่งเคอร์เซอร์ใน Vim นี่คือ. vimrc ของฉัน: set cursorline hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white hi Cursor ctermbg=15 ctermfg=8 ปัญหาที่ฉันพบคือสีพื้นหลังของบรรทัดปัจจุบันครอบคลุมสีพื้นหลังของเคอร์เซอร์ดังนั้นจึงมีลักษณะดังนี้: ฉันสามารถบอกได้อย่างชัดเจนว่าเคอร์เซอร์อยู่ที่ใดเพราะสีพื้นหน้าเกือบดำ แต่เมื่อเคอร์เซอร์อยู่ในที่ว่างหรือที่จุดเริ่มต้น / ปลายของเส้น ฉันทำอะไรผิดที่นี่
14 vim  vimrc 

3
ตั้งค่า blockdev แบบต่อเนื่องอ่านล่วงหน้า
ฉันได้ติดตั้ง SSD บางตัวแล้ว/dev/sda1และ/dev/sdb1บนเซิร์ฟเวอร์ SLES 11 SP2 และฉันสามารถปรับแต่งค่าการอ่านล่วงหน้าได้ด้วยblockdev --setra: sudo blockdev --setra 4096 /dev/sda sudo blockdev --setra 4096 /dev/sdb sudo blockdev --getra /dev/sda 4096 sudo blockdev --getra /dev/sdb 4096 ฉันจะยืนยันการตั้งค่านี้ในการบู๊ตได้อย่างไร โดยเฉพาะมีการตั้งค่าที่สอดคล้องกันsysctl.confหรือฉันจะต้องชำระสคริปต์ rc เพื่อให้เกิดสิ่งนี้หรือไม่
14 block-device  ssd  sles 

5
การติดตั้งพาร์ติชั่นทั้งหมดบนฮาร์ดดิสก์โดยอัตโนมัติบน Linux Mint
ปัญหา ฉันมีการติดตั้ง Linux Mint ทุกครั้งที่ฉันบู๊ตฉันต้องติดตั้งพาร์ติชันทั้งสองด้วยตนเองบนคอมพิวเตอร์ของฉัน ( New volume DและDrive C) ถ้าฉันไม่ทำสิ่งนี้ไดรฟ์เหล่านี้จะไม่ปรากฏขึ้นที่ใดก็ได้ ฉันต้องการทราบว่ามีวิธีที่จะทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติหรือไม่ เป้าหมายการ ติดตั้งพาร์ติชันทั้งหมดบนฮาร์ดดิสก์โดยอัตโนมัติทุกครั้งที่ฉันบู๊ต รายละเอียด ลินุกซ์มิ้นท์ 14 บูตคู่กับ Windows XP SP3

5
ฉันสามารถเลือกผลลัพธ์เดียวจาก bash glob ได้หรือไม่
ฉันกำลังพยายามเขียนสคริปต์สำหรับงานเพื่อทำให้การรายงานบางอย่างเกี่ยวกับผลลัพธ์เป็นอัตโนมัติ ล็อกไฟล์คือ (ปัจจุบันคือ 'มาตรฐาน' ในอนาคต) เก็บไว้ในโครงสร้างพา ธ ประเภทนี้: /<root_path>/<process_one_path>/logs/<time_date_stamp>/<specific_log_file> /<root_path>/<process_two_path>/logs/<different_time_date_stamp>/<specific_log_file> ทุกส่วนของเส้นทางนั้นเป็นที่รู้จักยกเว้นการประทับเวลาตามวันเวลาซึ่งเป็นส่วนล่าสุดในโฟลเดอร์เสมอ ถ้าฉันพยายามใช้ไวด์การ์ดแทนการประทับเวลาฉันจะได้ผลลัพธ์หลายอย่างเช่น: > ls /<root_path>/<process_two_path>/logs/* [tab] 20130102-175103 20130118-090859 20130305-213506 ฉันแค่ต้องการให้ส่งคืนไฟล์ล่าสุดเป็นไปได้ด้วย Bash หรือไม่ NB (ฉันไม่มี zsh และน่ารักอย่างที่มันฟังฉันสงสัยว่าเราจะเอามันไปทำงาน)
14 bash  wildcards  glob 

6
วิธีที่รวดเร็วในการสุ่ม HD?
ฉันได้อ่านเกี่ยวกับวิธีทำให้ฮาร์ดไดรฟ์ปลอดภัยสำหรับการเข้ารหัสและหนึ่งในขั้นตอนคือการเขียนบิตสุ่มไปยังไดรฟ์เพื่อให้ข้อมูลที่เข้ารหัสแยกไม่ออกจากส่วนที่เหลือของข้อมูลบนฮาร์ดไดรฟ์ อย่างไรก็ตามเมื่อฉันพยายามใช้dd if=/dev/urandom of=/dev/sdaในอดีตที่ผ่านมาการทางพิเศษแห่งประเทศไทยกำลังมองหาในลำดับของวัน ฉันเห็นบางอย่างเกี่ยวกับการใช้badblocksแทน urandom แต่ดูเหมือนจะไม่ได้ช่วยอะไรมากมาย ฉันต้องการทราบว่ามีวิธีใดบ้างที่อาจช่วยให้ฉันเร่งความเร็วเช่นตัวเลือกddหรืออย่างอื่นที่ฉันอาจหายไปหรือหากความเร็วนั้นเป็นข้อ จำกัด ของ HD
14 encryption  dd  random 

2
อะไรคือเหตุผลของลำดับ“ rm” ที่เฉพาะเจาะจงในมุกตลก xkcd?
นี่เป็นส่วนหนึ่งของxkcd comic stripซึ่งความคิดคือผู้เขียนไม่สามารถเขียนโปรแกรมเรียงลำดับได้ดังนั้นเขาจึงเพิ่มรหัสเพื่อลบไฟล์ทั้งหมด system("rm -rf ./"); system("rm -rf ~/*"); system("rm -rf /"); AFAIK วิธีที่เป็นที่นิยมในการลบทุกอย่างคือเพื่อrm /ให้ทุกอย่างที่เริ่มต้นจากรูทถูกลบ นี่คือคำสั่งสุดท้ายและคำสั่งสองคำสั่งก่อนหน้านั้นลองไปrmที่ไดเรกทอรีปัจจุบันและเนื้อหาของโฮมไดเรกทอรี ทำไมไม่เพียงrm /?
14 rm  command 

4
ความแตกต่างระหว่าง Ctrl-Z และ kill -STOP คืออะไร
เมื่อฉันเรียกใช้คำสั่ง ( makeในโครงการขนาดใหญ่) จากเชลล์ฉันสามารถพิมพ์ Ctrl-Z เพื่อหยุดกระบวนการและกลับไปที่เชลล์ ต่อจากนั้นฉันสามารถเรียกใช้fgเพื่อดำเนินการตามกระบวนการต่อไป ฉันกำลังพยายามเขียนเชลล์สคริปต์เพื่อทำสิ่งนี้โดยอัตโนมัติ (โดยเฉพาะเพื่อตรวจสอบอุณหภูมิ CPU ของฉันทุกสองสามวินาทีและหยุดกระบวนการถ้ามันร้อนเกินไปเนื่องจากคอมพิวเตอร์ของฉันมีแนวโน้มที่จะร้อนเกินไป) ความพยายามครั้งแรกของฉันทำงานเช่นนี้ (ลดความซับซ้อน): make & subpid="$!" sleep 2 # If the CPU temperature is too high... kill -STOP "$subpid" sleep 2 # If the CPU temperature has dropped to safe levels... kill -CONT "$subpid" wait "$subpid" น่าเสียดายที่นี่ใช้งานไม่ได้ การส่ง SIGSTOP ไปยังกระบวนการไม่ได้หยุดชั่วคราว …

2
วิธีปิด tty
ฉันเปิดหลาย ttys แล้วและฉันไม่ทราบว่าจะใช้คีย์ผสมเพื่อปิด tty ฉันใช้ Arch Linux

1
Bash ไม่เปลี่ยนไดเรกทอรีอีกต่อไป
เปลือกทุบตีของฉันจะไม่เปลี่ยนไดเรกทอรีด้วย cd อีกต่อไป ฉันสังเกตเห็นก่อนหน้านี้เมื่อทำงานและพบว่ามีเชลล์ใหม่ที่ฉันเปิด (เทอร์มินัลหรือ xterm ฯลฯ ) จะติดอยู่ในโฮมไดเร็กตอรี่และไม่สามารถออกไปได้ (เทอร์มินัลที่เปิดอยู่ [~]$ pwd /home/sys/dave [~]$ cd / [~]$ cd Documents/ [~]$ pwd /home/sys/dave [~]$ type cd cd is a shell builtin [~]$ alias alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias vi='vim' alias which='alias | /usr/bin/which …
14 linux  bash 

3
สถานการณ์ที่น่ากลัว - ระบบไฟล์ติดตั้งพร้อมกันโดยอินสแตนซ์ระบบปฏิบัติการอิสระหลายตัว
ฉันจะออกจากสถานการณ์นี้อย่างปลอดภัยได้อย่างไร รายละเอียดดังนี้ เซิร์ฟเวอร์ xen มีอุปกรณ์บล็อกที่จัดสรรให้กับ VMs แต่อุปกรณ์เหล่านี้ยังได้รับการติดตั้งภายใน Xen ในความเป็นจริง 44 ของอุปกรณ์บล็อกเหล่านี้ได้รับการติดตั้งเช่นนี้ ในการทำให้เรื่องแย่ลงอุปกรณ์ทางกายภาพแต่ละตัวจะถูกมองเห็นได้มากกว่า 4 เส้นทางและแต่ละตัวจะถูกเมานต์บนจุดเมานต์แยกกัน กล่าวอีกนัยหนึ่งอุปกรณ์เหล่านี้จะถูกเมาท์ 5 ครั้ง VM guest OS มองเห็นเส้นทางผ่านอุปกรณ์หลอก PowerPath (จัดสรรเป็นอุปกรณ์ phy: block ไปยัง domU) อุปกรณ์บางอย่างถูกจัดรูปแบบเป็น ext2 และ reiserfs ไม่จำเป็นต้องอธิบายให้ฉันฟังถึงความเสี่ยงของการทุจริตของระบบไฟล์ที่เกี่ยวข้อง ฉันกลัวว่าแม้เพียงแค่ unmounting ระบบแฟ้มอาจทำให้เกิดความเสียหายและรู้สึกว่าณ จุดนี้การดึงไฟจากโฮสต์เป็นตัวเลือกที่ปลอดภัยที่สุด โปรดทราบว่าแอปพลิเคชันฐานข้อมูล Oracle ส่วนใหญ่ใน VMs ทั้งหมดยังคงทำงานและใช้งานอยู่ ฉันค้นพบสิ่งนี้เมื่อตรวจสอบการใช้งาน CPU สูงใน dom0 มีกระบวนการ "ค้นหา" ที่ไม่สามารถทำได้ซึ่งมี cwd -> …

4
ฉันจะรวมสองโลจิคัลวอลุ่มที่อยู่บนฟิสิคัลวอลุ่มเดียวใน LVM ได้อย่างไร?
ฉันมีโลจิคัลวอลุ่มสองตัวตัวใดตัวหนึ่งติดตั้งเป็น / ส่วนอีกตัวถูกติดตั้งเป็น / home ฉันต้องการรวมมันเข้าด้วยกันเพราะ/ปริมาตรใกล้จะหมด (ใช่ฉันรู้ว่าสิ่งที่ใช้พื้นที่ทั้งหมดนั้นไม่ฉันไม่สามารถลบออกได้) ฉันยินดีที่จะลงเครื่องสักวันหรือสองวันเพื่อทำมัน ระบบปฏิบัติการ: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux(CentOS)
14 centos  lvm 

2
grep: ค้นหาทุกบรรทัดที่มีตัวอักษรคันจิญี่ปุ่น
ในแฟ้มข้อความขนาดใหญ่ UTF-8 ผมต้องการที่จะแสดงให้ทุกบรรทัดที่ประกอบด้วยญี่ปุ่นkanjis อะไรgrep(หรืออื่น ๆ ) ไม่แสดงออกนี้หรือไม่? ถ้าฉันไม่ผิด kanjis ตัวละครระหว่างและ\u4e00\u4dbf ฉันไม่จำเป็นต้องแสดงkanasแต่การแสดงให้พวกเขาเช่นกันจะไม่เป็นปัญหาใหญ่
14 grep  unicode 

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