ผู้ดูแลเซิร์ฟเวอร์

คำถาม & คำตอบสำหรับผู้ดูแลระบบและเครือข่าย

4
bash: ตัวแปรสูญเสียค่าเมื่อสิ้นสุดการอ่านลูป
ฉันมีปัญหากับหนึ่งในสคริปต์เชลล์ของฉัน ถามเพื่อนร่วมงานไม่กี่คน แต่พวกเขาทั้งหมดเพิ่งส่ายหัว (หลังจากมีรอยขีดข่วน) ดังนั้นฉันจึงมาที่นี่เพื่อหาคำตอบ ตามความเข้าใจของฉันเชลล์สคริปต์ต่อไปนี้ควรพิมพ์ "Count is 5" เป็นบรรทัดสุดท้าย ยกเว้นว่ามันจะไม่ มันพิมพ์ "นับเป็น 0" หาก "ขณะที่อ่าน" ถูกแทนที่ด้วยลูปชนิดอื่นมันก็ใช้ได้ดี นี่คือสคริปต์: echo "1"> input.data echo "2" >> input.data echo "3" >> input.data echo "4" >> input.data echo "5" >> input.data CNT = 0 cat input.data | ในขณะที่อ่าน ทำ ให้ CNT ++; echo "นับเป็น …
36 bash  scope 

2
วิธีลดจำนวนซ็อกเก็ตใน TIME_WAIT
เซิร์ฟเวอร์ Ubuntu 10.04.1 x86 ฉันมีเครื่องที่มีบริการ FCGI HTTP ซึ่งอยู่หลัง nginx ซึ่งให้บริการคำขอ HTTP ขนาดเล็กจำนวนมากแก่ลูกค้าที่แตกต่างกันจำนวนมาก (ประมาณ 230 คำขอต่อวินาทีในชั่วโมงเร่งด่วนขนาดตอบสนองโดยเฉลี่ยที่มีส่วนหัวคือ 650 ไบต์ลูกค้าหลายล้านรายต่อวัน) เป็นผลให้ฉันมีซ็อกเก็ตจำนวนมากแขวนอยู่ใน TIME_WAIT (กราฟถูกจับด้วยการตั้งค่า TCP ด้านล่าง): ฉันต้องการลดจำนวนซ็อกเก็ต ฉันจะทำอะไรนอกจากนี้ $ cat / proc / sys / net / ipv4 / tcp_fin_timeout 1 $ cat / proc / sys / net / ipv4 / tcp_tw_recycle 1 …

4
ฉันจะทำให้ cURL ใช้ keepalive จากบรรทัดคำสั่งได้อย่างไร
ฉันพยายามตรวจสอบว่ามีการใช้การเชื่อมต่อ HTTP แบบถาวรในระหว่างการสื่อสารกับเว็บเซิร์ฟเวอร์ Tomcat ที่ฉันใช้งานอยู่ ขณะนี้ฉันสามารถดึงทรัพยากรบนเซิร์ฟเวอร์ของฉันจากเบราว์เซอร์ (เช่น Chrome) และตรวจสอบโดยใช้ netstat ว่าการเชื่อมต่อได้ถูกสร้างขึ้นแล้ว: # visit http://server:8080/path/to/resource in Chrome [server:/tmp]$ netstat -a ... tcp 0 0 server.mydomain:webcache client.mydomain:55502 ESTABLISHED อย่างไรก็ตามถ้าฉันใช้ curl ฉันไม่เคยเห็นการเชื่อมต่อบนเซิร์ฟเวอร์ใน netstat [client:/tmp]$ curl --keepalive-time 60 --keepalive http://server:8080/path/to/resource ... [server:/tmp]$ netstat -a # no connection exists for client.mydomain ฉันได้ลองใช้คำสั่ง curl ต่อไปนี้: curl …
36 http  tcp  curl  netstat  keepalive 

5
ฉันจะบอกได้ว่าไฟล์ปรับแต่งใดที่ Apache กำลังใช้อยู่
ฉันกำลังพยายามตั้งค่าโฮสต์เสมือนบน Mac OS X ฉันได้แก้ไข httpd.conf แล้วรีสตาร์ทเซิร์ฟเวอร์ แต่ก็ไม่มีโชคในการทำให้ใช้งานได้ นอกจากนี้ฉันสังเกตเห็นว่ามันไม่ได้ให้บริการไฟล์ใน DocumentRoot ที่กล่าวถึงใน httpd.conf (Libraries / WebServer / Documents) แต่ในไดเรกทอรีอื่น (/ usr / local / apache2 / htdocs) ฉันไม่เห็นโฟลเดอร์นี้พูดถึงทุกที่ใน httpd.conf นอกจากนี้ PHP ใช้งานได้ แต่บรรทัด "LoadModule php5_module" แสดงความคิดเห็น นี่ทำให้ฉันคิดว่าใช้ไฟล์. config อีกไฟล์ ฉันจะทราบได้อย่างไรว่ากำลังโหลดการกำหนดค่าใดอยู่ อัปเดต: ฉันเพิ่งลบ httpd.conf และ apache ที่ทำงานเหมือนเดิมหลังจากรีสตาร์ทดังนั้นมันจึงไม่ได้ใช้อย่างแน่นอน!

6
ฉันจะค้นหาเซิร์ฟเวอร์ LDAP ใน DNS บน Windows ได้อย่างไร
สำหรับ Linux คำสั่งนี้ควรส่งคืนระเบียน DNS สำหรับเซิร์ฟเวอร์ LDAP host -t srv _ldap._tcp.DOMAINNAME (พบที่การพิสูจน์ตัวตนจาก Java (Linux) ถึง Active Directory โดยใช้ LDAP โดยไม่ต้องชื่อเซิร์ฟเวอร์ ) ฉันจะได้รับเหมือนกันในบรรทัดคำสั่งของ Windows โดยใช้ nslookup ได้อย่างไร ฉันเหนื่อย nslookup -type srv _ldap._tcp.DOMAINNAME (ติดตามhttp://support.microsoft.com/kb/200525 ) สิ่งนี้จะถูกต้องหรือไม่

4
ตอบค่าเริ่มต้นโดยอัตโนมัติเมื่อทำการ 'ทำให้ oldconfig' บนแผนผังเคอร์เนล
เมื่อสร้างเคอร์เนลใหม่ตามการตั้งค่าก่อนหน้ามีวิธีการทำให้make oldconfigกระบวนการอัตโนมัติเพื่อให้ตัวเลือกใหม่เป็นค่าเริ่มต้นหรือไม่ แก้ไข:สิ่งที่ฉันหมายถึงคือเมื่อใช้. config (จาก/boot/config-*หรือ/proc/config.gz) ในเคอร์เนลที่ใหม่กว่าmake oldconfigกระบวนการจะถามว่าคุณต้องการเปิดใช้งานตัวเลือกที่ไม่พร้อมใช้งานในเคอร์เนลเก่าของคุณหรือไม่ คุณสามารถตอบ Y / n / m หรือกด Enter เพื่อยอมรับค่าเริ่มต้น ฉันต้องการยอมรับค่าเริ่มต้นโดยอัตโนมัติโดยไม่มีการโต้ตอบกับผู้ใช้
36 linux  kernel 

4
สคริปต์ PowerShell แสดงคำสั่งที่เรียกใช้
ฉันกำลังเล่นกับสคริปต์ PowerShell และพวกเขาทำงานได้ดี อย่างไรก็ตามฉันสงสัยว่ามีวิธีใดที่จะแสดงคำสั่งทั้งหมดที่ทำงานเช่นเดียวกับที่คุณพิมพ์ด้วยตนเองในตัวเอง สิ่งนี้จะคล้ายกับ "echo on" ในไฟล์แบตช์ ฉันดูอาร์กิวเมนต์บรรทัดคำสั่ง PowerShell, cmdlets แต่ฉันไม่พบสิ่งใดที่ชัดเจน ขอบคุณ!

7
วิธี VNC ในเซสชัน X ที่มีอยู่
ต้องการเชื่อมต่อกับจอแสดงผล X ที่มีอยู่เพื่อให้สามารถเข้าถึงสภาพแวดล้อมการทำงานของฉันและทุกสิ่งที่ฉันเปิดทิ้งไว้จากบ้าน ฉันจำบางสิ่งบางอย่างเกี่ยวกับการใช้ x11vnc ในอดีต แต่แพ็คเกจนี้ไม่มีอยู่สำหรับ Fedora 11 ดังนั้นฉันคิดว่าตอนนี้มีวิธีการบางอย่างในตัว หมายเหตุ:ฉันเชื่อมต่อกับเครื่องทำงานผ่าน VPN ดังนั้นการป้องกันรหัสผ่านคือทั้งหมดที่ฉันต้องการความปลอดภัย
36 linux  fedora  vnc 

7
ประสิทธิภาพ Xen vs. KVM
จะเร็วกว่าอะไรในฮาร์ดแวร์เดียวกัน Xen หรือ KVM ฉันพยายามเลือกเทคโนโลยีเวอร์ชวลไลเซชันให้ใช้งานได้ซึ่งให้ประสิทธิภาพที่ดีที่สุด มีมาตรฐานบางอย่างที่ฉันพบในเรื่องนี้: http://virt.kernelnewbies.org/XenVsKVM พวกเขาแสดงให้เห็นว่า KVM เป็นผู้ชนะซึ่งมีความแตกต่างอย่างมากในประสิทธิภาพ - ซึ่งขัดกับแนวคิดที่ว่า KVM เป็นไฮเปอร์ไวเซอร์ประเภท 2 และโดยคำนิยามมันควรจะช้ากว่าไฮเปอร์ไวเซอร์ Type-1 (เช่น Xen) หรืออย่างน้อย บทความบนเว็บพูด มีความคิดเกี่ยวกับเรื่องนี้ไหม?

12
มีใครใช้ GPS สำหรับการซิงค์เวลาหรือไม่
ฉันเจอเซิร์ฟเวอร์ GPS NTP ไม่กี่ตัวรวมถึงโซลูชันราคาไม่แพงโดยใช้ตัวรับและซอฟต์แวร์ที่ไม่ได้วางจำหน่าย ตอนนี้ฉันแค่ใช้ NTP กับรายการเซิร์ฟเวอร์ผ่านอินเทอร์เน็ต ข้อดีของการใช้ GPS แทน (พิจารณาจากทางเลือกฟรี) คืออะไร

7
วิธีแสดง ip ที่ถูกแบนทั้งหมดด้วย fail2ban
เมื่อฉันเรียกใช้คำสั่งนี้fail2ban-client status sshdฉันได้รับสิ่งนี้: Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 81 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 2 |- Total banned: 8 `- Banned IP list: 218.65.30.61 116.31.116.7 มันแสดงเพียงสอง IP ในรายการ IP ที่ถูกแบนแทนที่จะเป็น 8 เหมือนกับที่ Total Banned …
36 fail2ban 

3
อาร์กิวเมนต์ -qq สำหรับ apt-get หมายความว่าอย่างไร
ฉันเพิ่งได้รับVagrantfileและติดตั้งสคริปต์ทุบตีโพสต์ Vagrantfile ดาวน์โหลดมาตรฐานUbuntuจาก Ubuntu Cloud แต่ฉันพบบางอย่างในสคริปต์ทุบตี อ่านสคริปต์ไม่กี่บรรทัดเป็น: apt-get update -qq > /dev/null apt-get -qq -y install apache2 > /dev/null ฉันพยายามค้นหาทั่วอินเทอร์เน็ตว่า-qqเชลล์สคริปต์หมายถึงอะไร แต่ก็ไม่ได้รับการกล่าวถึงเลยดังนั้นฉันจะถามที่นี่ถ้ามีใครรู้ว่ามันคืออะไร AFAIK > /dev/nullหมายถึงกระบวนการต่อเนื่องไม่ได้ถูกพิมพ์บนหน้าจอเพราะไม่จำเป็นต้องมีการ-qqตั้งค่าสถานะ ดังนั้นฉันอยากรู้จริงๆ
36 ubuntu  apt 

10
ข้อผิดพลาด Linux ATA: กำลังแปลเป็นชื่ออุปกรณ์หรือไม่
เมื่อกล่องลีนุกซ์ได้รับข้อผิดพลาด ATA มันจะ syslogs พร้อมกับข้อความระบุดิสก์เป็น "ata% d.00" ฉันจะแปลสิ่งนั้นเป็นชื่ออุปกรณ์ได้อย่างไร (เช่น/dev/sdb) ฉันรู้สึกว่าสิ่งนี้จะเล็กน้อย แต่ฉันไม่สามารถคิดออก
36 linux  hard-drive 

2
พยายามสร้างชุดระเบียน 2 ชนิด = TXT ในเส้นทาง 53
ฉันกำลังพยายามเพิ่มTXTระเบียนที่สองในโดเมน แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: พยายามสร้างชุดระเบียนทรัพยากร type = 'TXT แต่มีอยู่แล้ว ฉันสามารถเพิ่มสองระเบียนในโดเมนเดียวกันได้หรือไม่

7
สร้าง 'ไฟล์เสมือน' จากคำสั่ง bash หรือไม่
ฉันสงสัยว่ามีวิธีการสร้าง 'ไฟล์เสมือน' จาก bash output หรือไม่ ตัวอย่าง: สมมติว่าฉันต้องการส่งออกอีเมลmysqldumpเป็นไฟล์แนบไปยังที่อยู่อีเมลภายนอก ฉันสามารถใช้ Mutt ในการทำเช่นนั้นได้ ตัวเลือกที่ฉันจำเป็นต้องใช้งานmutt -a <name of the file I want to attach>ฉันรู้ว่าฉันสามารถใช้ไฟล์ชั่วคราว: mysqldump mysqldumpoptions > /tmp/tempfile && mutt -a /tmp/tempfile admin@example.org แต่ฉันอยากจะเปลี่ยนเส้นทางmysqldumpผลลัพธ์โดยตรงไปยัง Mutt แทน -aตัวเลือกของ Mutt ยอมรับเฉพาะไฟล์และไม่ใช่สตรีม แต่อาจมีวิธีส่งไฟล์ descriptor เสมือนหรืออะไรบางอย่างตามบรรทัดเหล่านั้น สิ่งที่ต้องการ: mutt -a $(mysqldump mysqldumpoptions) admin@example.org มันเป็นไปได้? ถ้าไม่ทำไม นี่อาจเป็นตัวอย่างที่โง่และแน่นอนมีวิธีที่ง่ายกว่าในการทำเช่นนี้ แต่ฉันหวังว่ามันจะอธิบายคำถามของฉันเกี่ยวกับการสร้างไฟล์เสมือนจากเอาต์พุตของคำสั่งอื่น
36 bash  redirection 

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