背景:一般公司内生产服务器的web上线更新是由运维人员来完成的,但是不排除有些公司管理混乱,开发自己上传文件到服务器,比如本人之前所在的公司就出现这样的奇葩事,更新方法有很多种,服务多了用自动化运维工具,比如ansible,还可以直接使用svn或git,但是如果服务器比较少的情况下用ansible这样的工具总有些杀鸡用牛刀的感觉,故给新来的开发人员写下如下脚本供其上传新文件到web服务器. 注:此脚本并非生产所用,只是从中摘了一小部分供初学者参考练习所用 #!/bin/bash #version 0.1 #最后一次修改人:xxx #公司内无论谁修改此脚本文件,请在上面注上您的姓名 clear echo '注意:为了确保安全在同步时需要输入生产密码!!!' echo -e '\e[32m1.本地指定文件(目录)------->>生产服务器指定文件(目录)\e[m' echo -e '\e[32m2.本地web根目录------->>生产服务器web跟目录\e[m' echo -e '\e[35m3.退出' while : do read -p '选择你的操作:' num if [ $num -eq 1 ];then read -p "输入本地文件绝对路径:" src read -p "您要同步文件到哪台机器?(web1/web2/web3):" web read -p "输入远程文件绝对路径:" dst read -p "您确定要进行文件同步吗?(yes/no):" ack if [ "$ack" == "yes" ];then rsync -arvlSH $src $web:$dst 2>/dev/null [ $? -eq 0 ] && echo "同步成功!请去生产服查看" || echo "同步失败,请自行检查或联系运维人员" elif [ "$ack" == "no" ];then : else echo '输入错误!' fi elif [ $num -eq 2 ];then echo '你现在还不能这么做!' elif [ $num -eq 3 ];then exit fi done 执行效果如下: 背景:一般公司内生产服务器的web上线更新是由运维人员来完成的,但是不排除有些公司管理混乱,开发自己上传文件到服务器,比如本人之前所在的公司就出现这样的奇葩事,更新方法有很多种,服务多了用自动化运维工具,比如ansible,还可以直接使用svn或git,但是如果服务器比较少的情况下用ansible这样的工具总有些杀鸡用牛刀的感觉,故给新来的开发人员写下如下脚本供其上传新文件到web服务器. 注:此脚本并非生产所用,只是从中摘了一小部分供初学者参考练习所用 #!/bin/bash #version 0.1 #最后一次修改人:xxx #公司内无论谁修改此脚本文件,请在上面注上您的姓名 clear echo '注意:为了确保安全在同步时需要输入生产密码!!!' echo -e '\e[32m1.本地指定文件(目录)------->>生产服务器指定文件(目录)\e[m' echo -e '\e[32m2.本地web根目录------->>生产服务器web跟目录\e[m' echo -e '\e[35m3.退出' while : do read -p '选择你的操作:' num if [ $num -eq 1 ];then read -p "输入本地文件绝对路径:" src read -p "您要同步文件到哪台机器?(web1/web2/web3):" web read -p "输入远程文件绝对路径:" dst read -p "您确定要进行文件同步吗?(yes/no):" ack if [ "$ack" == "yes" ];then rsync -arvlSH $src $web:$dst 2>/dev/null [ $? -eq 0 ] && echo "同步成功!请去生产服查看" || echo "同步失败,请自行检查或联系运维人员" elif [ "$ack" == "no" ];then : else echo '输入错误!' fi elif [ $num -eq 2 ];then echo '你现在还不能这么做!' elif [ $num -eq 3 ];then exit fi done 执行效果如下: |
|