实现功能:
由于公司项目较多,而运维暂时只有一个。
各种CMDB,zabbix,ELK,平台化等搭建还不完善,无法满足线上提取日志等操作。
所以这里允许部分开发可以登录到服务器上面去。
但又不想直接给他们每人一个远程桌面+CRT登录形式,所以这里暂时考虑使用dialog部署一个简单的界面登录形式。
效果图:
选择可登录的项目,选择对应的项目和服务器
![8c06d817dba4930857a8c0f4449603ba.png](https://i-blog.csdnimg.cn/blog_migrate/f0728cb66bc14af3c191a97f08265c4f.jpeg)
点击回车有登录,上传下载文件的权限
![d39a8044b65313db5df294f8dfc1f7aa.png](https://i-blog.csdnimg.cn/blog_migrate/a45fe989cf3c02a360ab3966114762b5.jpeg)
这时候开发人员就可以登录自己想要操作的服务器了。
dialog可接参数
![cd8ffe134f44e9681ecc339ae2d0442b.png](https://i-blog.csdnimg.cn/blog_migrate/11e28a1f85585d7442b75e9e577f869b.jpeg)
举例:
## 菜单栏homedir(){ dialog --clear --title "请选择相应的项目" --menu "登录页面" 18 112 9}## 业务操作operation(){ dialog --clear --title "操作服务器: ${IP} " --menu "登录页面" 18 112 9 "ssh" "登录服务器" "updatefile" "上传文件到服务器" "downloadfile" "下载文件到本地"}## 上传updatefile(){ dialog --title "上传文件到: ${IP}" --inputbox "请输入你要上传的文件名;" 8 60 PACKAGEFILE=${PACKAGEUP}${UPFILE} if [ -f ${PACKAGEFILE} ];then scp ${IP} ${Sign_USER} ${Port} ${PACKAGEFILE} else dialog --title "${UPFILE}上传失败" --backtitle "上传文件操作" --msgbox "文件不存在,按OK键确认.或等待一会儿后操作..." 9 50 fi }## 下载downloadfile(){ dialog --title "正在下载: ${IP} 中文件" --inputbox "请输入你要下载的文件名;" 8 60}
最后再结合自己的实际需要,对应的调用不同IP就可以实现登录,上传,下载等操作了。