คำถามติดแท็ก shell-scripting

การเขียนโปรแกรมในภาษาตีความที่ดำเนินการโดยเชลล์ที่รัน

7
ฉันจะนอนเป็นมิลลิวินาทีใน bash หรือ ksh ได้อย่างไร
sleep เป็นคำสั่งที่นิยมมากและเราสามารถเริ่ม sleep จาก 1 วินาที: # wait one second please sleep 1 แต่จะเป็นทางเลือกอะไรถ้าฉันต้องรอเพียง 0.1 วินาทีหรือระหว่าง 0.1 ถึง 1 วินาที หมายเหตุ: บน linux หรือ OS X sleep 0.XXXทำงานได้ดี แต่บน Solaris sleep 0.1หรือsleep 0.01- ไวยากรณ์ผิดกฎหมาย

5
คุณตั้งค่าภาษาแบบไม่โต้ตอบบน Debian / Ubuntu ได้อย่างไร
โดยปกติผมทำงานaptitude -y install localesแล้วdpkg-reconfigure localesการตั้งค่าสถานที่เกิดเหตุ ตอนนี้ฉันต้องการใส่มันลงในเชลล์สคริปฉันจะทำสิ่งต่อไปนี้โดยอัตโนมัติ / ไม่โต้ตอบได้อย่างไร? เลือกen_US.UTF-8และตั้งเป็นค่าเริ่มต้นของระบบ ปิดการใช้งานตำแหน่งที่ตั้งอื่นทั้งหมด (ไม่บังคับ) ตรวจสอบว่า/etc/default/localeมีรายการเดียวและอย่างเดียวของLANG=en_US.UTF-8ที่คาดไว้

1
Ctrl-C ในสคริปต์ทุบตี
ฉันจะใช้การจัดการctrl+ cในสคริปต์ทุบตีได้อย่างไรเพื่อให้สคริปต์ถูกขัดจังหวะรวมถึงคำสั่งที่รันอยู่ในปัจจุบันซึ่งเปิดตัวโดยสคริปต์ (ลองนึกภาพว่ามีสคริปต์ที่รันคำสั่งที่ใช้เวลานานผู้ใช้กดctrl+ cและขัดจังหวะคำสั่ง แต่สคริปต์ดำเนินไป) ฉันต้องการให้มันทำงานในลักษณะที่ทั้งคู่ถูกฆ่า

7
การรัน ssh-agent จากเชลล์สคริปต์
ฉันพยายามที่จะสร้างเชลล์สคริปต์ที่เหนือสิ่งอื่นใดเริ่มต้นขึ้น ssh-agent และเพิ่มคีย์ส่วนตัวให้กับตัวแทน ตัวอย่าง: #!/bin/bash # ... ssh-agent $SHELL ssh-add /path/to/key # ... ปัญหาของเรื่องนี้คือ ssh-agent เริ่มต้นใหม่จาก $ SHELL (ในกรณีของฉัน, ทุบตี) และจากมุมมองของสคริปต์มันถูกดำเนินการทุกอย่างและ ssh-add และสิ่งใด ๆ ข้างล่างนี้จะไม่ทำงาน ฉันจะเรียกใช้ ssh-agent จากเชลล์สคริปต์ของฉันและทำให้มันย้ายลงในรายการคำสั่งได้อย่างไร

1
คำสั่งเชลล์ทำงานช้าลงเมื่อใช้ไพพ์รวดเร็วด้วยไฟล์ระดับกลาง
ไม่มีใครเข้าใจความแตกต่างอย่างมากในเวลาประมวลผลเมื่อใช้ไฟล์ระดับกลางหรือเมื่อใช้ไพพ์? ฉันกำลังแปลง tiff เป็น pdf โดยใช้เครื่องมือมาตรฐานบนเดเบียนเซิร์ฟเวอร์บีบสด วิธีมาตรฐานในการทำเช่นนี้คือการแปลงเป็น ps ก่อน ไม่มีท่อ: root@web5:~# time tiff2ps test.tif > test.ps real 0m0.860s user 0m0.744s sys 0m0.112s root@web5:~# time ps2pdf13 -sPAPERSIZE=a4 test.ps > test.pdf real 0m0.667s user 0m0.612s sys 0m0.060s ด้วยท่อ: root@web5:~# time tiff2ps test.tif | ps2pdf13 -sPAPERSIZE=a4 - > test.pdf real 1m6.098s user 0m15.861s …

4
วิธีใช้คำสั่ง find เพื่อลบไฟล์ที่ตรงกับรูปแบบ?
ฉันพยายามเขียนคำสั่ง bash ที่จะลบไฟล์ทั้งหมดที่ตรงกับรูปแบบเฉพาะ - ในกรณีนี้มันคือไฟล์บันทึกเก่า vmware ที่สร้างขึ้นทั้งหมด ฉันได้ลองคำสั่งนี้แล้ว: find . -name vmware-*.log | xargs rm อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งมันจะปรากฏขึ้นในทุกโฟลเดอร์ที่มีช่องว่างในชื่อของพวกเขา มีวิธีการจัดรูปแบบเส้นทางไฟล์เพื่อให้ xargs ส่งไปยัง rm ที่ยกมาหรือหนีออกมาอย่างถูกต้องหรือไม่?

2
จะให้สิทธิ์ sudo กับไฟล์สคริปต์เฉพาะได้อย่างไร
ฉันต้องการให้ผู้ใช้มีสิทธิ์ sudo (โดยไม่ตรวจสอบรหัสผ่าน) ให้กับเชลล์สคริปต์สองสามตัวภายใต้ไดเรกทอรีเฉพาะ (ในกรณีของฉัน/usr/local/tomcat7/bin) และไปที่อื่น วิธีที่ง่ายที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร? ดูเหมือนว่าสิ่งนี้/etc/sudoersจะไม่ทำงาน: jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin

5
รับรายการไฟล์ที่ถ่ายโอนจาก rsync หรือไม่
ขณะนี้ฉันใช้rsyncสคริปต์ที่ปรับใช้แอปพลิเคชัน PHP จากการจัดเตรียมไปยังเซิร์ฟเวอร์การผลิต นี่คือวิธี: rsync -rzai --progress --stats --ignore-times --checksum /tmp/app_export/ root@app.com:/var/www/html/app/ ขณะนี้กำลังแสดงรายการของทุกไฟล์ที่กำลังถูกเปรียบเทียบ (ทุกไฟล์ในโครงการ) แต่ฉันต้องการให้ส่งออกเฉพาะรายการที่แก้ไขดังนั้นฉันสามารถเรียกใช้ด้วย--dry-runตัวเลือกเพื่อตรวจสอบว่าการปรับใช้ทั้งหมดกำลังอัปเดตเฉพาะ ไฟล์ที่ต้องการ หมายเหตุ: สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือgrep fcstผลลัพธ์ แต่ฉันกำลังมองหาrsyncตัวเลือกที่ฉันแน่ใจว่ามี แต่ฉันไม่สามารถหาได้ในหน้าคู่มือ ขอบคุณล่วงหน้า!

2
เป็นไปได้ไหมที่จะตั้งค่าการหมดเวลาในคำสั่ง s_client ของ openssl?
ฉันมีสคริปต์ที่ใช้คำสั่ง s_client openssl เพื่อดึงใบรับรองสำหรับโฮสต์ชุดใหญ่ โฮสต์เหล่านี้บางส่วนจะไม่สามารถเข้าถึงได้เนื่องจากไฟร์วอลล์ เป็นไปได้ไหมที่จะตั้งค่าการหมดเวลาของ s_client ให้สั้นกว่าค่าเริ่มต้นมาก? ฉันไม่เห็นไฟล์ในหน้า man / help file หรือคำสั่ง wrapper ประเภทนั้นที่จะฆ่า openssl -s_client อัตโนมัติหลังจากจำนวน X วินาที ฉันไม่ต้องการทดสอบโฮสต์ / พอร์ตล่วงหน้าหากเป็นไปได้

2
mysqldump ส่งคืนสถานะหรือไม่
ฉันกำลังสร้างสคริปต์ที่สำรองฐานข้อมูล mysql โดยใช้โปรแกรมอรรถประโยชน์ mysqldump ฉันกำลังเขียนสคริปต์นี้ในเปลือก "sh" ฉันต้องการบันทึกสถานะเอาต์พุตของ mysqldump ในสคริปต์ (เช่นถ้าคำสั่ง mysqldump ล้มเหลวหรือสำเร็จ) ดังนั้นฉันสามารถรายงานว่าสคริปต์ประสบความสำเร็จหรือไม่ mysqldump ส่งคืนสถานะเอาต์พุตหรือไม่ ใครช่วยกรุณาให้คำแนะนำในการทำเช่นนี้กับฉันได้ไหม

5
เชลล์สคริปต์สามารถรอให้ไฟล์เปลี่ยนแปลงและดำเนินการได้หรือไม่?
ฉันสงสัยว่าฉันสามารถเขียนสคริปต์ที่จะตรวจสอบการเปลี่ยนแปลงในไฟล์และดำเนินการบางอย่างเมื่อตรวจพบการเปลี่ยนแปลงหรือไม่ คำอธิบายโดยละเอียด: OpenVPN เขียนสถานะลงในไฟล์ทุก ๆ 1 นาที ฉันต้องแจงไฟล์สถานะนี้แล้วดำเนินการ OpenVPN ตัดทอนไฟล์สถานะก่อนที่จะเขียนลงไป ฉันลองเขียนไปที่ไปป์ที่มีชื่อ แต่ฉันพบข้อผิดพลาดที่ไม่พึงประสงค์ (แต่ไม่ถึงตาย) ในแอพเมื่อไม่สามารถตัดทอนได้

2
วิธีตั้งค่ารหัสผ่านผู้ใช้ postgresql ใน bash script
ฉันต้องการที่จะตั้งรหัสผ่านสำหรับผู้ใช้เซิร์ฟเวอร์เริ่มต้น PostgreSQL postgresที่ ฉันทำได้โดยใช้: sudo -u postgres psql # \password postgres ฉันต้องการทำขั้นตอนนี้ในหลาย ๆ เครื่องดังนั้นฉันต้องการสร้างbashสคริปต์เพื่อทำสิ่งเดียวกัน วิธีการบรรลุสิ่งนี้ในทุบตี?

6
เชื่อมต่อกับบรรทัดรับคำสั่ง MySQL โดยไม่ต้องใช้รหัสผ่านรูต
ฉันกำลังสร้างสคริปต์ Bash สำหรับงานบางอย่าง หนึ่งในภารกิจเหล่านั้นคือการสร้างฐานข้อมูล MySQL จากภายในสคริปต์ทุบตีเดียวกัน สิ่งที่ฉันทำตอนนี้คือการสร้างสอง vars: หนึ่งสำหรับชื่อผู้ใช้ร้านค้าและอื่น ๆ สำหรับรหัสผ่านร้านค้า นี่คือส่วนที่เกี่ยวข้องของสคริปต์ของฉัน: MYSQL_USER=root MYSQL_PASS=mypass_goes_here touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql mysql --user=$MYSQL_USER --password="$MYSQL_PASS" < /tmp/script.sql rm -rf /tmp/script.sql แต่มักจะได้รับข้อผิดพลาดว่าการเข้าถึงถูกปฏิเสธสำหรับผู้ใช้รูทด้วยรหัสผ่านไม่สิ่งที่ฉันทำผิด? ฉันต้องทำเช่นเดียวกันสำหรับ PostgreSQL

3
พารามิเตอร์ PowerShell
ฉันมีบล็อก Param ในสคริปต์ของฉัน Param ( [Parameter(Mandatory=$True)] [string]$FileLocation, [Parameter(Mandatory=$True)] [string]$password = Read-Host "Type the password you would like to set all the users to" -assecurestring ) ฉันสามารถใช้ Read-Host CmdLet ในฟิลด์ Parameter ที่ต้องการได้หรือไม่? หากไม่มีสิ่งที่ฉันสามารถทำได้เพื่อให้แน่ใจว่าฉันใช้ประเภทตัวแปรที่ถูกต้องเพื่อให้ฉันสามารถส่งผ่านไปยังกระบวนการสร้างผู้ใช้ได้หรือไม่

2
ฉันสามารถเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดของผู้ใช้ที่เฉพาะเจาะจงได้หรือไม่?
มีวิธีในการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ซ้ำและเปลี่ยนเป็นผู้ใช้ / กลุ่มอื่นใน Gnu / Linux หรือไม่? ฉันคิดว่าต้องมีเวทย์มนตร์หนึ่งสายการบิน แต่ทักษะการใช้เวทมนตร์บรรทัดคำสั่งของฉันไม่ได้ขึ้นอยู่กับว่า :) ขอบคุณ!

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