Unix & Linux

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

1
วิธีตั้งค่าบริการให้เริ่มต้นหลังจาก autofs เริ่มต้นด้วย systemd
ฉันต้องตั้งค่าเซิร์ฟเวอร์สิทธิ์การใช้งานบนเครื่อง RHEL7 ที่มี systemd เซิร์ฟเวอร์สิทธิ์การใช้งานควรเริ่มเมื่อบูตและโหลดไฟล์ลิขสิทธิ์จากดิสก์ที่ใช้ร่วมกันบนเครือข่าย ดังนั้นฉันต้องรอให้เครือข่ายเริ่มต้นและรอให้ autofs ติดตั้งดิสก์ NFS ให้เสร็จ ฉันมีไฟล์บริการนี้: [Unit] Description=Flexnet license server Wants=network.target network-online.target autofs.service After=network.target network-online.target autofs.service [Service] Type=forking User=licenseuser Group=devusers ExecStart=/soft/flexera/glnxa64/lmgrd -c /soft/licenses/license.dat -L /home/licenseuser/license.log # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 [Install] WantedBy=multi-user.target บริการเริ่มต้นหลังจาก autofs เริ่มต้น …
9 rhel  systemd 

4
ใช้ไฟล์เพื่อติดตั้งแพกเกจด้วย apt-get
ฉันคิดว่ามันสะดวกในการติดตั้งแพ็คเกจบนเครื่องใหม่ผ่านไฟล์แพ็คเกจเช่น Brewfiles, caskfiles, dockerfiles, package.json เป็นต้น มีทางเลือกอื่นสำหรับการรับ apt ตั้งแต่ฉันยังใช้มัน ผ่าน commandline ด้วย apt-get install pkg1 pkg2 pkg3… ?
9 apt 

1
bashscript เพื่อตรวจจับปุ่มลูกศรขวาถูกกด
ทำไมสิ่งนี้ถึงตรวจพบว่าเป็นจริงเสมอแม้ว่ารหัสคีย์นั้นจะไม่ถูกต้องลูกศรขวา stty_state=`stty -g` stty raw; stty -echo keycode=`dd bs=1 count=1 2>/dev/null` stty "$stty_state" echo $keycode if [ "$keycode"=39 ]; then echo "Right Arrow Key Pressed!" fi

2
หากกระบวนการลูกที่เกิดใหม่ล้มเหลวให้ฆ่าทั้งหมดและออก
ในสคริปต์ของฉันฉันแบ่งชุดข้อมูลเป็น input_aa, input_ab และอื่น ๆ จากนั้นฉันเรียกใช้แต่ละสคริปต์ Python เดียวกันเช่น: # Execute program on each split file for part in input_*; do python3 $part & done wait คำถามของฉันคือสองเท่า: ฉันจะตรวจสอบได้อย่างไรว่ากระบวนการ Python ล้มเหลวและเมื่อตรวจพบฉันจะฆ่าเด็กที่เกิดมาแล้วทั้งหมดและออกจากสคริปต์ได้อย่างไร
9 bash  shell  python 

1
อะไรคือความแตกต่างระหว่าง "ไฟล์รีเซ็ต git" และ "ไฟล์รีเซ็ตหัว git"
ฉันพบว่าทั้งสองอย่างนี้ไม่สามารถสร้างไฟล์ได้ ฉันเคยใช้git reset fileเพื่อ unstage ไฟล์ แต่วันนี้เมื่อฉันอ่านhttp://git-scm.com/book ฉันคิดว่ามันสอนให้ฉันใช้git reset HEAD fileหัวทำอะไรที่นี่? ในกรณีใดมันจะต้อง? PS: คำถามเพิ่มเติมฉันสามารถใช้git checkout fileเพื่อแก้ไขไฟล์ git checkout -- fileในขณะที่หนังสือเล่มนี้แนะนำให้ผมใช้ ความแตกต่างที่นี่คืออะไร
9 git 

2
btrfs เหมาะสมกับระบบไฟล์สำรองหรือไม่?
ตอนนี้ฉันมีโครงสร้างระบบไฟล์สำรองแบบดั้งเดิมที่ยอดเยี่ยมของ ext4 ทุกครั้งที่ทำการสำรองข้อมูลโฟลเดอร์ใหม่backup-DATEจะถูกสร้างขึ้นซึ่งไฟล์ใดเป็น rsync'ed (โดยมีการทำลิงก์โดยใช้--link-destตัวเลือกของ rsync ) ตั้งแต่ฉันได้อ่านเกี่ยวกับ bitrot ฉันต้องการตรวจสอบไฟล์ทั้งหมดอย่างโปร่งใส เห็นได้ชัดว่า ext4 ไม่สามารถทำได้ แต่ btrfs รองรับการตรวจสอบข้อมูล (และแม้กระทั่งโหมด RAID1 ในตัว) สำหรับการเริ่มต้นฉันต้องการใช้btrfsเป็นระบบไฟล์ "dumb" ซึ่งรองรับการตรวจสอบข้อมูลโดยไม่ใช้คุณสมบัติขั้นสูงเช่น RAID, สแน็ปช็อต subvolume, ส่ง / รับ ฯลฯ อย่างไรก็ตามวิกิของพวกเขาไม่ได้สร้างแรงบันดาลใจให้กับความมั่นใจในระบบไฟล์เพื่อการสำรองข้อมูล: "ในขณะที่คนจำนวนมากใช้อย่างน่าเชื่อถือ แต่ก็ยังพบปัญหาอยู่คุณควรเก็บและทดสอบการสำรองข้อมูลของคุณและเตรียมพร้อมที่จะใช้งาน" - เริ่มต้น "btrfs เสถียรหรือไม่ตอบนาน: [.. ] ไม่ว่าคุณจะทำอะไรเราขอแนะนำให้ทำการสำรองข้อมูลที่ดีทดสอบนอกระบบ (และนอกสถานที่)" - คำถามที่พบบ่อย กรณีการใช้งานของฉันคือการสำรองข้อมูลออฟไลน์ ด้วยเหตุนี้ดิสก์จะเห็นการใช้งานน้อยมาก (ในชั่วโมง) และจะถูกเสียบ / ถอดปลั๊ก (eSATA หรือ …

1
ksh93 เร็วแค่ไหน?
โดยทั่วไปแล้วฉันมักจะมองหาการsedประมวลผลข้อความ - โดยเฉพาะอย่างยิ่งสำหรับไฟล์ขนาดใหญ่ - และมักจะหลีกเลี่ยงการทำสิ่งต่าง ๆ เหล่านั้นในเชลล์เอง แต่ฉันคิดว่ามันอาจเปลี่ยนไป ฉันแหย่ไปรอบ ๆman kshและฉันสังเกตเห็นสิ่งนี้: <#pattern Seeks forward to the beginning of the next line containing pattern. <##pattern The same as <# except that the por‐ tion of the file that is skipped is copied to standard output. ฉันสงสัยว่ามันมีประโยชน์ในโลกแห่งความเป็นจริงฉันจึงลองทำดู ฉันทำ: seq -s'foo bar ' …

3
ส่งต่อฟังก์ชันและตัวแปรไปยัง sudo su - <user> << EOF
ฉันได้ประกาศฟังก์ชั่นและตัวแปรใน bash / ksh และฉันต้องการส่งต่อไปยังsudo su - {user} &lt;&lt; EOF: #!/bin/bash log_f() { echo "LOG line: $@" } extVAR="yourName" sudo su - &lt;user&gt; &lt;&lt; EOF intVAR=$(date) log_f ${intVAR} ${extVAR} EOF

1
“ ValueError: _system ไม่ได้เริ่มต้น” เมื่อใช้ apt.VersionCompare
ฉันเขียนสคริปต์ทุบตีที่มีการเปรียบเทียบสองสายรุ่นเพื่อตัดสินใจที่จะดาวน์โหลดรุ่นใหม่หรือไม่ การทดสอบนั้นใช้สคริปต์ Python apt.VersionCompare()ซึ่งทำหน้าที่ในการเปรียบเทียบเวอร์ชันตามที่aptต้องการ #!/usr/bin/env python import sys, apt res = apt.VersionCompare(sys.argv[1], sys.argv[2]) if res &lt; 0: sys.exit(-1) if res &gt; 0: sys.exit(1) sys.exit(0) ด้วยการอัพเกรดเป็น Ubuntu 14.4 สิ่งนี้หยุดทำงาน ฉันพยายามเปลี่ยนสคริปต์ตาม/programming/4957514/ดังต่อไปนี้: #!/usr/bin/env python import sys, apt_pkg res = apt_pkg.version_compare(sys.argv[1], sys.argv[2]) if res &lt; 0: sys.exit(-1) if res &gt; 0: sys.exit(1) sys.exit(0) ValueError: …
9 apt  python 

2
ฉันจะผ่านการ subshell ผ่าน 'time' แบบมีเงื่อนไขได้อย่างไร
timeฉันมีสคริปต์การติดตั้งสำหรับกล่องจรจัดที่ผมใช้ในการวัดขั้นตอนเดียวกับ ตอนนี้ฉันต้องการเปิดหรือปิดใช้งานการวัดเวลาแบบมีเงื่อนไข ตัวอย่างเช่นก่อนหน้านี้บรรทัดจะมีลักษณะดังนี้: time (apt-get update &gt; /tmp/last.log 2&gt;&amp;1) ตอนนี้ฉันคิดว่าฉันสามารถทำสิ่งนี้ได้ง่ายๆ: MEASURE_TIME=true [[ $MEASURE_TIME = true ]] &amp;&amp; TIME="time --format=%e" || TIME="" $TIME (apt-get update &gt; /tmp/last.log 2&gt;&amp;1) แต่สิ่งนี้จะไม่ทำงาน: syntax error near unexpected token `apt-get' `$TIME (apt-get update &gt; /tmp/last.log 2&gt;&amp;1)' มีปัญหาอะไรที่นี่
9 bash  shell  quoting  time 

1
ไม่สามารถรีสตาร์ท daemon เครือข่าย
เมื่อฉันพิมพ์sudo service networking restartฉันได้รับข้อผิดพลาดตามที่แสดงด้านล่าง: edward@computer:~$ sudo service networking restart stop: Job failed while stopping start: Job is already running: networking มีข้อผิดพลาดนี้เมื่อฉันต้องการรีสตาร์ทnetworkingหลังจากเปลี่ยนที่อยู่ mac และหลังจากตั้งค่า IP แบบคงที่ใน/etc/network/interfacesไฟล์ ฉันได้รับข้อผิดพลาดเดียวกันแม้หลังจากคืนค่าการเปลี่ยนแปลงเหล่านั้นและเมื่อคอมพิวเตอร์ทำงานได้ดี ในขณะที่มองผ่าน/var/log/syslogฉันพบสิ่งนี้: kernel: [ 6448.036144] init: networking post-stop process (28701) terminated with status 100 เกี่ยวข้องกับการหยุด / เริ่มต้นที่ล้มเหลวหรือไม่ ฉันใช้ Ubuntu 14.04

1
ส่งออกรหัสผ่านจากตัวจัดการรหัสผ่าน 'รหัสผ่าน'
ฉันใช้ตัวpass จัดการรหัสผ่านมาประมาณหนึ่งปีแล้วและมันเยี่ยมมาก แต่บางครั้งฉันก็ชอบที่จะทดสอบตัวจัดการรหัสผ่านอื่น ๆ จากนั้นฉันก็ต้องใช้รหัสผ่านของฉันอีกครั้ง จนถึงตอนนี้ฉันเพิ่งเพิ่มพวกเขาด้วยตนเองตามที่ฉันต้องการ แต่ถ้าฉันต้องการย้ายไปยังตัวจัดการรหัสผ่านอื่นฉันต้องการสคริปต์เพราะฉันไม่มีความอดทนที่จะทำทีละตัวเพราะฉันมี ร้อย (ถ้าไม่มาก) เป็นไปได้ไหม? มีทางออกอยู่แล้ว? ฉันค้นหาวิธีแก้ปัญหาเปิดและปิดในช่วงสองสามเดือนที่ผ่านมาและไม่สามารถหาวิธีที่ "แค่เรียกใช้สคริปต์นี้และส่งออกบูม" มีสคริปต์เช่นนี้หรือไม่? ถ้าไม่ฉันควรทำอะไรหรือที่ไหน

5
ค้นหาสตริงและพิมพ์ทุกอย่างก่อนและหลังภายในช่วง
ฉันมีไฟล์นี้: sometext1{ string1 } sometext2{ string2 string3 } sometext3{ string4 string5 string6 } ฉันต้องการที่จะค้นหาแฟ้มนี้เพื่อหาสตริงที่เฉพาะเจาะจงและพิมพ์ทุกอย่างก่อนที่สายนี้ขึ้นอยู่กับการเปิดและทุกอย่างหลังจากที่สายนี้ถึงปิด{ }ฉันพยายามที่จะบรรลุสิ่งนี้ด้วย sed แต่ถ้าฉันพยายามพิมพ์ทุกอย่างในช่วง/{/,/string2/ตัวอย่างเช่น sed พิมพ์สิ่งนี้: sometext1{ string1 } sometext2{ string2 sometext3{ string4 string5 string6 } ถ้าฉันค้นหาสตริง "string2" ฉันต้องการผลลัพธ์เป็น: sometext2{ string2 string3 } ขอบคุณ

1
insmod: ข้อผิดพลาด: ไม่สามารถแทรกโมดูล 8188eu.ko: รูปแบบโมดูลไม่ถูกต้อง
ฉันพยายามใช้ TL-WN725N เป็นอะแดปเตอร์ USB WiFi พร้อม Fedora 20 ผมทำตามเหล่านี้insructionsและอะแดปเตอร์ทำงานได้ดีและยังอยู่รอดการปรับปรุงที่สองในช่วงไม่กี่สัปดาห์ที่ผ่านมา จากนั้นฉันก็ทำyum updateวันนี้และมันก็ใช้ได้ดีจนกระทั่งฉันรีสตาร์ทคอมพิวเตอร์ insmod: ERROR: could not insert module 8188eu.ko: Invalid module formatผมพยายามที่จะโหลดโมดูลและมี สิ่งที่ฉันค้นพบคือเคอร์เนลและส่วนหัวของเคอร์เนลในโมดูลนั้นไม่เหมือนกันอีกต่อไปและฉันต้องอัปเดตเคอร์เนลดังนั้นฉันจึงทำอย่างนั้นและได้รับ sudo yum install kernel-headers Loaded plugins: langpacks, refresh-packagekit Package kernel-headers-3.17.3-200.fc20.x86_64 already installed and latest version Nothing to do ตอนนี้ฉันสับสนเล็กน้อยเกี่ยวกับวิธีการโหลดโมดูลอย่างถูกต้อง ใครมีความคิดเห็นบ้าง

8
ค้นหาไฟล์ PDF ซ้ำตามเนื้อหา
วารสารบางฉบับสร้าง PDF ที่แตกต่างกันสำหรับการดาวน์โหลดแต่ละครั้ง APS เช่นเก็บเวลาและที่อยู่ IP ใน PDF หรือมีรุ่นกระดาษที่มีการเชื่อมโยงหลายมิติและรุ่นที่มีการอ้างอิงข้อความ เป็นไปได้อย่างไรที่จะค้นหาการดาวน์โหลดเอกสารที่มีเนื้อหาเท่ากัน 90% บนระบบ linux โดยใช้ซอฟต์แวร์โอเพ่นซอร์ส ฉันได้รับความคิดเกี่ยวกับการแปลงไฟล์ PDF pdf2txtไปยังข้อความธรรมดาในไดเรกทอรีชั่วคราว จากนั้นฉันสามารถกรองชื่อไฟล์ทั้งหมดที่ให้diff a bผลลัพธ์มากกว่าเส้น x แต่นี่ไม่ได้สวยงามเลยและจะล้มเหลวกับสิ่งพิมพ์ที่สแกน วารสารมักจะไม่ให้ข้อความ OCR สำหรับสิ่งพิมพ์เก่า ฉันลองcompareในชุด ImageMagick ด้วย แต่ฉันไม่สามารถจัดการไฟล์ PDF หลายไฟล์ได้ด้วยเครื่องมือนี้ diffpdf 2.1.1ทำงานได้ดีใน GUI บนสองไฟล์ แต่ฉันไม่สามารถหาวิธีนำไปใช้กับไฟล์จำนวนมากได้และเวอร์ชันล่าสุดไม่สามารถใช้ได้ภายใต้ใบอนุญาตโอเพนซอร์สใด ๆ

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