Então eu escrevi uma simples página php
<?php
system ("/srv/http/control/wifi.sh");
?>
wifi.sh
#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
genpasswd=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c10)
/srv/http/control/telnet.exp $genpasswd
echo $genpasswd
telnet.exp
#!/usr/bin/expect -f
log_user 0
set ses 1
set pass [lindex $argv 0]
set $::env(TERM) xterm
spawn "telnet" "192.16.0.20" "-l" "admin+ctw80h25"
set ses $spawn_id
set timeout 200
expect -i $ses "Password:"
exp_send -i $ses "123\r"
expect -i $ses "*admin*@*]*>"
exp_send -i $ses "/interface wireless security-profiles edit 0 wpa2-pre shared-key\r"
send "\x0B"
send "$pass"
send "\x0F"
expect -i $ses "*admin*@*]*>"
close
Em seguida, abra minha página do php, apenas o valor de $ genpasswd é mostrado, mas espere que o script não seja executado. Alguma sugestão?
Tags bash php expect linux shell-script