Shell robot

เคยบ้างมั้ยที่ต้องใช้ shell ทำอะไรหลายๆ อย่าง
เคยบ้างมั้ยที่ แต่ละอย่าง ที่จะให้ shell ทำต้องกรอกอะไรบางอย่าง
นี่แหละปัญหาของผม แต่ที่ผมจะให้ shell ทำเป็นแค่คำสั่ง scp ที่ส่ง password ไปยัง server ซึ่งถ้าปกติไม่อยากพิมพ์ password บ่อยๆ ก็สามารถ gen key แล้วส่ง public key ไปยัง server ได้ แต่เมื่อย้าย server ที ก็ต้อง gen key ใหม่ ส่ง key ใหม่ โอ้ อะไรมันช่างยุ่งยากฉะนี้ สุดท้ายก็เลยถามพี่ที่ทำงานซะเลยว่ามีวิธีมั้ย แล้วก็ได้ตัวอย่าง shell script เล็กๆ มาอันนึง ตาม code ด้านล่าง


#!/usr/bin/expect

set password “password”

spawn scp user@host:~/dir/file .

expect “password:”
send “$password\r”

spawn scp user@host2:~/dir/file .

expect “password:”
send “$password\r”

spawn scp user@host3:~/dir/file .

expect “password:”
send “$password\r”
จริงๆ แล้วแต่ละส่วนผมก็ยังไม่รู้รายละเอียดเท่าไหร่ แต่ตอนนี้ที่รู้คือ expect ใช้สำหรับเขียนควบคุมจำลองการทำงาน เหมือนมีคนมาพิมพ์คำสั่งให้ แม๊ แต่ก่อนก็เคยเห็นแต่โปรแกรม ทดสอบแบบ GUI พึ่งรู้ว่าใน *nix ก็มีกับเค้าเหมือนกัน แถมท่าทางเหมือนจะมีมานานแล้วซะด้วยนะเนี๊ยะ
ปอลอ. จริงๆ ผมลองถามไปใน irc ก็ได้คุณ lindever ส่งไฟล์ scp แบบที่ใส่รหัสผ่านเข้าไปได้ มาให้ ก็ขอบคุณมากเลยนะครับ (อุตส่าลง freebsd 6 ขนาด 2 GB เพื่อ compile ให้ผมด้วยอ่ะ)

About llun

Just a programmer

, ,