คำถามติดแท็ก expect

1
ความหมายของคำสั่ง "วางไข่" ของ linux shell คืออะไร? (Centos6)
ฉันจำเป็นต้องรู้วิธีการตั้งค่างาน cron ที่เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลโดยอัตโนมัติและเปลี่ยนไดเรกทอรีและรับไฟล์ทั้งหมดในไดเรกทอรีนั้นไปยังท้องถิ่น ฉันคิดว่าฉันต้องใช้ SFTP แต่ฉันเห็นคำสั่งบางคำเรียกว่า "วางไข่" ในเชลล์สคริปต์บางตัวและฉันสับสนว่าจะทำอะไรและจะทำอย่างไร spawn sftp user@ipaddress cd xxx/inbox mget * จะทำงานในบริบทของการดาวน์โหลดไดเรกทอรีระยะไกลได้หรือไม่

2
ไม่สามารถเรียกใช้“ mysql”: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวโดยใช้ autoexpect
ฉันมีไฟล์ต่อไปนี้: exp.exp #!/usr/bin/expect db_host='localhost' db_name='webui_dev' db_user='root' db_pass='rootpass' new_db_name='db_2011' expect <<EOF log_user 0 spawn mysql -h $db_host -u $db_user -p $db_pass 'create database $new_db_name' expect "password:" send "$db_pass\r" log_user 1 expect eof EOF ฉันทำให้มันใช้งานได้โดย sudo chmod +x script/year_changer/create_db.expแต่ถ้าฉันพยายามที่จะดำเนินการฉันได้รับข้อผิดพลาด: couldn't execute "mysql": no such file or directory while executing "spawn mysql -h …

1
ไฟล์มีอยู่ไม่ทำงานในสคริปต์ที่คาดหวัง
ฉันพยายามตรวจสอบว่ามีบรรทัดใดบรรทัดหนึ่งอยู่ในชื่อไฟล์ของโฮสต์หรือไม่ ดังนั้นหากพบรูปแบบเฉพาะจากคำสั่ง grep dummy.txt จะถูกสร้างขึ้น จากนั้นฉันต้องการตรวจสอบว่า dummy.txt มีเงื่อนไขและดำเนินการต่อหรือไม่ แต่แม้ว่า dummy.txt จะถูกสร้างขึ้นโดยไม่พบคำสั่ง if: if {[file exists $fileName] } และการควบคุมจะถูกโอนไปยังบล็อกอื่น อะไรคือเหตุผล? มีวิธีใดที่ง่ายกว่าในการบรรลุสิ่งที่ฉันต้องการหรือไม่ set Host [lindex $argv 0 ] spawn ssh -o StrictHostKeyChecking=no userid@$Host expect "*assword*" send "password\n" expect "+" send "cd path/that/contains/filename\n" expect "*$*" send "pwd\n" set fileName dummy.txt send {grep '\[abc\]' …

1
การเข้าสู่ระบบอัตโนมัติ SSH ให้เปลือกระยะไกลไม่ตอบสนองลดลงกลับไปที่ลูกค้าสถานี (ไม่มีข้อผิดพลาด)
ฉันมีปัญหากับเครื่องมือภายใต้ Ubuntu 14.04 LTS ฉันต้องการลงชื่อเข้าใช้ ssh อัตโนมัติไปยัง Sophos UTM Firewalls และทำให้สิทธิ์ของฉันถูกต้องหลังจากนั้นด้วย "sudo su -" และรหัสผ่านที่ถูกต้อง ฉันไม่ต้องกังวลเกี่ยวกับรหัสผ่านแบบข้อความธรรมดาเพราะสคริปต์ของฉันวิ่งออกจากช่อง URL ของ KeePass โดยตรง (doubleclick เรียกใช้งานสคริปต์และเติมด้วยรหัสผ่านที่ถูกต้องผ่าน agrument / KeePass {Placeholder} ด้านหลังสคริปต์) ฉันจัดการเพื่อให้เสร็จสิ้นทั้งหมดยกเว้นการมีเชลล์ระยะไกลรูทซึ่งไม่ได้ดำเนินการคำสั่งใด ๆ และ "ปล่อยการเชื่อมต่อ" กลับไปที่ระบบอูบุนตูของฉัน ดังนั้นคำสั่งที่ฉันพยายามเรียกใช้จากระยะไกลนั้นไม่ได้ใช้เวลา 4-5 วินาทีแล้วจึงถูกประมวลผลบนระบบอูบุนตูโดยไม่บอกฉันว่าเกิดอะไรขึ้น ฉันต้องทำอย่างไรจึงจะสามารถใช้งาน remote shell ได้อย่างสมบูรณ์ SSH-Keys และการรูทเข้าสู่ระบบโดยตรงไม่ใช่วิธีแก้ปัญหาสำหรับฉันเนื่องจากเรามี Sophos UTM มากเกินไป สิ่งที่อธิบายเกิดขึ้น: sshtool.sh: #!/usr/bin/expect -f spawn sshpass …
1 ssh  script  sudo  keepass  expect 

1
วิธีจัดการกับเงื่อนไขเมื่อสคริปต์ที่คาดว่าจะเรียกใช้งานสคริปต์อื่นบนรีโมตโฮสต์ถูกขัดจังหวะ?
ฉันใช้สคริปต์คาดหวังว่าจะพูด xyz.exp เพื่อเข้าสู่ระบบโฮสต์ระยะไกลและดำเนินการสคริปต์อื่น abc.sh ตอนนี้เวลาส่วนใหญ่ abc.sh ทำงานได้ดี แต่มีสถานการณ์สมมติที่หากเงื่อนไขบางประการไม่สำเร็จสคริปต์จะหยุดและต้องการอินพุตของผู้ใช้สองคู่จากนั้นดำเนินการต่อ มีวิธีใดบ้างที่จะจัดการกับสถานการณ์นี้เช่นที่สคริปต์คาดหวัง xyz.exp สามารถแก้ปัญหานี้ได้แบบโต้ตอบ? หากสิ่งนี้เกิดขึ้นทั้งสคริปต์หยุดทำงานและฉันจะปิดเทอร์มินัลแล้วทำใหม่

3
วางไข่ Linux, คาดหวัง, ส่ง
รหัสต่อไปนี้ใช้งานไม่ได้ แต่สิ่งที่ฉันต้องการทำคือตอบ"n"ทุกครั้งที่YUMถามว่าฉันต้องการติดตั้งซอฟต์แวร์หรือไม่ ขอบคุณ #!/usr/bin/expect -f spawn yum install emacs expect "Is this ok \[y\/N\]:" send "n\r"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.