เคยบ้างมั้ยที่ต้องใช้ 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 ให้ผมด้วยอ่ะ)
Trackbacks/Pingbacks
[...] วันนี้ willwill ถามในห้อง #ubuntu-th ว่าทำยังไงให้เข้าไปในเซิร์ฟเวอร์ได้โดยไม่ต้องพิมพ์รหัสผ่าน ก็คุ้นๆว่าเคยทำเมื่อปีที่แล้ว แต่ลืมไปแล้วค้นๆ ในบล๊อกก็เคยทำจริงด้วยแต่ไม่ได้เขียนวิธีไว้วันนี้เลยขุดค้นใหม่ (แต่ willwill เจอวิธีไปก่อนและ แต่คนละเว็บ) เอามาเขียนเก็บกันลืมในนี้อีกที [...]