Raspberry Pi 3B+利用Shell脚本自动输入roo密码
Raspberry有一个致命的弱点是没有电池,当发生断电重启后,时间就千差万别,也就无法从NTP服务器获得正确时间了,而现在的业务是需要比对时间的,为此需要在程序启动时从服务端获取一个最新时间,调用Shell脚步来更改时间。
后百度后找到 使用expect可以实现
用法为
#!/usr/bin/expect
# 此脚本内自动输入密码时,至少要等待1秒
set timeout 1
#设置密码变量并赋值
set password "123456"
# spawn将开启一个新的进程,也可以是ssh $user@$host {your_command}
# 只有先进入expect环境后才可执行spawn
spawn su
# 判断上述进程(su kevin)的输出结果中是否有“password”的字符串(不区分大小写)。
# 若有则立即返回,否则就等待一段时间后返回,等待时长就是开头设置的1秒
expect "*password:"
# 向上面的进程(su)发送字符串中的密码, 并且自动敲Enter健(\n)
send "$password\n"
# 最后发送设置时间指令
send "date -s '2019-03-04 10:01:00'\n"
#expect结束并退出
expect eof
exit