Unix & Linux

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

3
btrfs ข้อผิดพลาด: ข้อผิดพลาดระหว่างการทรงตัว - ไม่มีพื้นที่เหลือบนอุปกรณ์
ระบบ Kubuntu 12.04 ของฉันมีพื้นที่เหลือบนพาร์ติชันรูทและจะไม่บู๊ต คำสั่งdf -hแสดงพื้นที่ว่างมาก (ใช้เพียง 37%): /dev/sda2 45G 17G 29G 37% หน้าต่อไปนี้ระบุว่าฉันควรเรียกใช้คำสั่งสมดุล: https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space $ sudo btrfs fi balance start -dusage=5 /mount/point ฉันไม่มั่นใจเลยว่านี่เป็นวิธีที่ดีที่สุด แต่ก็เป็นวิธีเดียวที่ฉันพบ อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งนั้นฉันได้รับข้อผิดพลาดนี้: ERROR: error during balancing '/blah/blah/blah' - No space left on device ฉันได้รับข้อผิดพลาดเดียวกันกับ: $ sudo btrfs fi balance start -dusage=1 /mount/point ทางออกที่ถูกต้องคืออะไร?

1
cUrl: รายการอาร์กิวเมนต์ยาวเกินไป
ฉันได้รับข้อผิดพลาด: Argument list too longเมื่อพยายามใช้ cUrl เพื่อส่งไฟล์ใน base64 ภายในเนื้อความของ JSON ของฉัน ฉันกำลังใช้สิ่งนี้: DATA=$( base64 "$FILE" ) curl -X POST -H "Content-Type: application/json" -d '{ "data": "'"$DATA"'" }' $HOST มีวิธีอื่นในการรับ DATA ในเนื้อหาของ JSON ของฉันหรือไม่ คำนึงถึงว่าฉันต้องอ่านไฟล์ในระบบไฟล์ของฉันแปลงเป็น base64 แล้วส่งมันเข้าไปในร่างกาย
15 curl 

1
การติดตั้ง fail2ban บน CentOS 7
ฉันใช้คำตอบของ @GarethTheRed สำหรับคำถามนี้เพื่อติดตั้ง fail2ban บนเซิร์ฟเวอร์ CentOS 7 ระยะไกล ฉันสามารถทำตามขั้นตอนทั้งหมดจนถึงtail -f /var/log/fail2ban.logจุดที่ฉันได้รับผลลัพธ์ที่แตกต่างจากที่เขาได้รับคำตอบของเขา นี่คือผลลัพธ์ที่ฉันได้รับในขั้นตอนนี้: [root@remotecentosserver.com ~]# tail -f /var/log/fail2ban.log 2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0 2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3' 2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2' หลังจากที่บรรทัดสุดท้ายที่ฉันเพิ่งได้รับเคอร์เซอร์ Ctrl-Cแต่ไม่พร้อมรับคำสั่งจนกว่าฉันประเภท …
15 ssh  centos  openssh  sshd  fail2ban 

3
ประวัติทุบตีสำหรับเซสชั่นปัจจุบัน
บางทีฉันอาจมองเห็นบางอย่าง แต่มีวิธีรับประวัติทุบตีปัจจุบันของคุณสำหรับเซสชันปัจจุบันที่คุณใช้งานอยู่ ถ้าฉันวิ่ง ssh host $ pwd $ ls $ cd /tmp ฉันแค่อยากเห็น 3 คำสั่งเหล่านั้นและไม่มีอะไรอื่น



2
วิธีรับรายการพอร์ตที่ว่างในเซิร์ฟเวอร์ Unix
ฉันมีความต้องการที่จะรู้ว่าพอร์ตทั้งหมดในเครื่อง Solaris ของฉันนั้นฟรีที่จะใช้สำหรับการสื่อสารเครือข่ายใด ๆ ฉันลองnetstat -aคำสั่ง แต่ข้อมูลที่ส่งคืนไม่ได้ให้ผลลัพธ์ที่น่าเชื่อถือซึ่งพอร์ตทั้งหมดที่ฉันสามารถใช้สำหรับแอปพลิเคชันใหม่ที่ฉันกำลังเขียน ขอบคุณสำหรับความช่วยเหลือใด ๆ ที่มีให้ในเรื่องนี้
15 networking 

3
ทำ distros ที่แตกต่างกัน (แต่เคอร์เนล ver เดียวกัน) มีการสนับสนุนฮาร์ดแวร์เดียวกัน
เท่าที่ฉันรู้ไดรเวอร์อุปกรณ์อยู่ในเคอร์เนล Linux ตัวอย่างเช่นสมมติว่า GNU / Linux distro A มีเคอร์เนลเวอร์ชันเดียวกับ GNU / Linux distro B นั่นหมายความว่าพวกเขามีฮาร์ดแวร์เดียวกันหรือไม่

2
ปัญหาการพิมพ์ด้วยบริการ ArchLinux และ CUPS
สองสามวัน (ฉันสงสัยว่าตั้งแต่ฉันอัพเกรดเป็น gnome 3.14) ใน ArchLinux ฉันไม่สามารถพิมพ์ได้อีก ถ้าฉันเปิดแผงการพิมพ์ของศูนย์ควบคุม gnome ฉันได้รับข้อความเช่น (แปลจากภาษาอิตาลี): "ดูเหมือนว่าบริการระบบสำหรับการพิมพ์ไม่พร้อมใช้งาน" ดังนั้นจาก terminal ฉันลอง: $ sudo systemctl start cups Failed to start cups.service: Unit cups.service failed to load: No such file or directory. ฉันยังลองติดตั้งถ้วยอีกครั้ง แต่ก็ไม่มีโชค ฉันลองไปสำรวจและลองใช้วิธีแก้ปัญหาต่าง ๆ ที่เสนอ แต่ก็ไม่สามารถใช้งานได้สำหรับฉัน

5
ฉันจะแปลงการประทับเวลาในคอลัมน์เป็นวันที่ได้อย่างไร
ฉันมีไฟล์ที่มีสิ่งนี้: 1415602803,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22 1415602807,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22 1415602811,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22 1415602815,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22 ฉันต้องการแปลงเวลาเป็นวันที่ในรูปแบบนี้: 2014-11-10 02:00:03,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22 2014-11-10 02:00:07,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22 2014-11-10 02:00:11,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22 2014-11-10 02:00:15,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22 ฉันจะทำสิ่งนั้นได้อย่างไร ฉันรู้ว่างานนี้: perl -pe 's/(\d+)/localtime($1)/e'(จากคำถามนี้ ) Mon Nov 10 02:00:03 2014แต่รูปแบบออกเป็น ฉันรู้ว่าคำสั่งนี้สามารถแปลงการประทับเวลาเป็นผลลัพธ์ที่ต้องการ: date -d@1415602803 +"%F %H:%M:%S"แต่ฉันไม่สามารถawkใช้งานได้system("cmd")เนื่องจากการใช้ใบเสนอราคาและอะไรก็ตาม

4
ถ่ายโอนไฟล์นับล้านไฟล์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง
ฉันมีเซิร์ฟเวอร์สองเครื่อง หนึ่งในนั้นมีไฟล์ข้อความ 15 ล้านไฟล์ (ประมาณ 40 GB) ฉันกำลังพยายามถ่ายโอนไปยังเซิร์ฟเวอร์อื่น ฉันคิดว่าซิปพวกเขาและถ่ายโอนไฟล์เก็บถาวร แต่ฉันรู้ว่านี่ไม่ใช่ความคิดที่ดี ดังนั้นฉันใช้คำสั่งต่อไปนี้: scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt แต่ฉันสังเกตเห็นว่าคำสั่งนี้เพิ่งถ่ายโอนประมาณ 50,000 ไฟล์แล้วการเชื่อมต่อจะหายไป มีวิธีแก้ปัญหาที่ดีกว่าหรือไม่ที่ทำให้ฉันสามารถถ่ายโอนไฟล์ทั้งหมดได้? ฉันหมายถึงใช้สิ่งที่ต้องการrsyncถ่ายโอนไฟล์ที่ไม่ได้ถ่ายโอนเมื่อการเชื่อมต่อขาดหายไป เมื่อมีการขัดจังหวะการเชื่อมต่ออื่นเกิดขึ้นฉันจะพิมพ์คำสั่งอีกครั้งเพื่อถ่ายโอนไฟล์โดยไม่สนใจคำสั่งที่ถูกถ่ายโอนเรียบร้อยแล้ว ไม่สามารถทำได้scpเนื่องจากจะเริ่มต้นจากไฟล์แรกเสมอ

1
เริ่มกระบวนการพื้นหลังจากสคริปต์และจัดการเมื่อสคริปต์สิ้นสุด
ฉันต้องการเรียกใช้และกำหนดค่ากระบวนการคล้ายกับ daemon จากสคริปต์ shell ของฉันคือ zsh emulated ภายใต้ Cygwin และ daemon คือSFKซึ่งเป็นเซิร์ฟเวอร์ FTP พื้นฐาน สำหรับสิ่งที่สำคัญที่นี่สคริปต์startserv.shสามารถถูกร่างได้ดังนี้: #!/bin/sh read -s -p "Enter Password: " pw user=testuser share=/fshare cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share" $cmd & หลังจากเรียกใช้สคริปต์สคริปต์startserv.shจะหยุด (จบลง?) โดยไม่แสดงพรอมต์ใด ๆ จากนั้น: CTRL+ Cจบทั้งสคริปต์และกระบวนการทำงานเบื้องหลัง การกดปุ่มEnterสคริปต์จะสิ้นสุดกระบวนการจะยังคงอยู่ในพื้นหลัง อย่างไรก็ตามผมสามารถดูได้ผ่านทางpsและไม่ได้jobsดังนั้นเมื่อฉันต้องการที่จะปิดการที่ผมต้องส่งโหดร้ายkill -9สัญญาณซึ่งเป็นสิ่งที่ผมอยากจะหลีกเลี่ยงในความโปรดปรานของ +CTRLC ทางเลือกอื่น จะเรียกใช้สคริปต์ทั้งหมดในพื้นหลัง 'จะ' แต่คำสั่งไม่สามารถได้รับข้อมูลผู้ใช้ถ้าสคริปต์ทำงานเป็นreadstartserv.sh & โปรดทราบว่าฉันต้องการเซิร์ฟเวอร์ชั่วคราวไม่ใช่ภูตจริง: …

5
`hostname 'เก็บชื่อโฮสต์ที่ฉันตั้งไว้ที่ไหน
นี่มันทำให้งงมาก ไม่มีใครทราบว่าhostnameคำสั่งเก็บและอ่านชื่อโฮสต์จากที่ใด ฉันคิดว่ามันเป็น / etc / hostname แต่ไม่มีไฟล์ดังกล่าวในระบบ Linux นี้ที่ฉันใช้ ฉันลองใช้ strace เพื่อหาที่ตั้ง แต่ไม่มีการโทรกลับอ่านข้อมูลนี้: $ strace hostname 2>&1 | grep read read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340^\0\0\0\0\0\0"..., 832) = 832 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\30\2\0\0\0\0\0"..., 832) = 832 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 248 read(3, "", 1024) = 0 จากนั้นฉันสังเกตเห็นว่ามันไม่ได้สร้างชื่อ syscall ที่ส่งคืนข้อมูลนี้ uname({sys="Linux", …
15 linux  hostname 

3
ไม่สามารถใช้ `cut -c` (` --characters`) กับ UTF-8 ได้หรือไม่?
คำสั่งcutมีตัวเลือกในการทำงานกับตัวละครแทนของไบต์ที่มีตัวเลือก-c -bแต่ดูเหมือนจะไม่ทำงานในen_US.UTF-8สถานที่: ไบต์ที่สองให้อักขระ ASCII ตัวที่สอง (ซึ่งเข้ารหัสเหมือนกันใน UTF-8): $ printf 'ABC' | cut -b 2 B แต่ไม่ได้ให้อักขระที่สองในสามของอักขระที่ไม่ใช่ ASCII กรีกในโลแคล UTF-8: $ printf 'αβγ' | cut -b 2 � ว่าไม่เป็นไร - เป็นที่สองไบต์ ดังนั้นเรามองไปที่ตัวละครที่สองแทน: $ printf 'αβγ' | cut -c 2 � ดูหัก ด้วยการทดลองบางอย่างปรากฎว่าช่วง3-4แสดงตัวละครที่สอง: $ printf 'αβγ' | cut -c 3-4 β แต่นั่นก็เหมือนกับไบต์ …

5
ข้อความที่น่ารำคาญ“ การเชื่อมต่อ X11 ถูกปฏิเสธเนื่องจากการรับรองความถูกต้องผิดพลาด” ในขณะที่ไม่มีปัญหา
ฉันมีปัญหาที่น่ารำคาญ เมื่อฉันเข้าสู่โฮสต์ที่เฉพาะเจาะจงผ่าน SSH ข้อความ X11 connection rejected because of wrong authentication. เกิดขึ้นสามครั้งดูเหมือนว่าสุ่มเกี่ยวกับหนึ่งครั้งต่อนาที ฉันไม่รู้ว่ามันมาจากไหน ที่จริงแล้วไม่มีปัญหาแม้แต่นิดเดียวกับการส่งต่อ X11 แต่มันก็ใช้งานได้อย่างมีเสน่ห์ แต่ข้อความนี้ยังคงปรากฏและมันทำให้ฉันบ้า ไม่มีใครมีความคิดวิธีการกำจัดมันได้หรือไม่ ฉันกำลังประสบปัญหาไม่ว่าฉันจะมาจากที่ใดมันเกิดขึ้นจาก Gnome-Desktop ของฉันและจากระบบ Windows ที่ใช้ PuTTY, MobaXterm, Cygwin ไม่ว่าอะไรก็ตาม หลังจาก twiddling มากขึ้นฉันพบสาเหตุที่จะเป็นตัวแทนการตรวจสอบ (check_mk) สิ่งนี้จะตรวจสอบพารามิเตอร์รันไทม์บางส่วนของงานที่กำลังทำงานอยู่ข้อความจะปรากฏขึ้นทุกครั้งเมื่อเอเจนต์นี้ถูกทริกเกอร์จากระบบการตรวจสอบเมื่อมีการตรวจสอบสถานะ PostgreSQL ดูเหมือนว่ากระบวนการนี้จะพยายามเปิดการเชื่อมต่อ X11 แต่ล้มเหลว จากนั้นข้อความจะถ่มน้ำลายลงในเซสชันเทอร์มินัลของฉันในขณะที่พยายามใช้เซสชัน X11 ที่ส่งต่อของฉัน มีวิธีปิดใช้งานข้อความนี้หรือไม่?
15 linux  ssh  x11 

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