linux svn checkout代码shell脚本

#!/bin/bash
echo "欢迎上使用svn账户配置脚本"
echo "当前版本V1.0.0"
echo "作者:blog.alipay168.cn"
echo "============================="
echo "============================="
echo "====  君子慎独,不欺暗室  ==="
echo "============================="
echo "============================="
echo -e "\n\n配置流程如下\n0.软件检测\n1.定义目录相关\n2.定义auzhz配置\n3.定义账号密码\n4.定义svnserve权限\n5.定义回调监听hook\n6.配置监听端口\n\n"
echo -e "开始进入配置:\n=====================\n"svnsoft='svnadmin'if ! type ${svnsoft} >/dev/null 2>&1; thenecho "${svnsoft} 未安装,请先运行ubuntu类:apt-get install subversion 或者centos系统:yum install subversion...安装svn服务"exit
elseecho -e "${svnsoft} 已安装,可以进行下一步配置\n"
fi#定义一些基本的变量
tmp_dir_svn="tmpsvn"
rm -rf $tmp_dir_svn
mkdir $tmp_dir_svn
#检测一下目录是否存在了
if [ ! -d $tmp_dir_svn ]; thenecho '目录当前无权限操作'exit
fitmp_file_port="${tmp_dir_svn}/port"
tmp_file_authz="${tmp_dir_svn}/authz"
tmp_file_passwd="${tmp_dir_svn}/passwd"
tmp_file_serve="${tmp_dir_svn}/svnserve.conf"
tmp_file_hook="${tmp_dir_svn}/post-commit"echo "请输入svn版本控制目录,如/svn/project1/"read svn_dir
#fixme 如果是根目录需要做判断,避免删除整个系统
if [ -d "$svn_dir" ]; thenecho "${svn_dir}目录已存在,是否强制删除目录,是输入1,否则终止执行:"read delcif [ "$delc" -eq 1 ]; thenecho "正在执行删除${svn_dir}目录..."rm -rf "$svn_dir"elseecho "您已取消配置!"exitfi
fi
echo "正在创建目录:${svn_dir}"
mkdir -p "$svn_dir"if [ -d "$svn_dir" ]; thenecho "svn目录创建成功"
elseecho "svn目录创建失败,程序终止"exit
fiecho "请输入版本同步目录,如/www/wwwroot/project1/"read webdirif [ -d "$webdir" ]; thenecho "${webdir}目录已存在,是否强制删除目录,是输入1,否则终止执行:"read delccif [ "$delcc" -eq 1 ]; thenecho "正在执行删除${webdir}目录..."rm -rf "$webdir"elseecho "您已取消配置!"exitfi
fi
echo "正在创建目录:${webdir}"
mkdir -p "$webdir"if [ -d "$webdir" ]; thenecho "svn同步目录创建成功"
elseecho "svn同步目录创建失败,程序终止"exit
fiecho -e "===============进入2.配置authz======\n"setauthz() {#用户组设置echo "[groups]" >$tmp_file_authzecho -e "\n请输入用户组和用户,格式【组名=用户0,用户1,用户2】:"echo '按下 <CTRL-D> 退出'echo -n "请输入用户组,如:admin=user1,user2,请继续:"echo -e "\n"while read groups; doecho "${groups}" >>$tmp_file_authzecho "${groups} 已保存,请继续:"doneecho -e "\n" >>$tmp_file_authzecho -e "\n\n\n接下来配置户组权限,rw-读写,w-只写,r-只读,@groupName设置某个用户组权限\n"echo -e "目录如[/],[/www/web1/dir1/dir22]\n"echo -e "例如(#后面是注释):\n"echo "-------example start-----------"echo -e "[/]#设置一个权路径\n"echo -e "@group1=rw#给group1用户组读写权限\n"echo -e "user1=r#给user1设置只读权限\n"echo -e "@admin=rw#给admin用户组读写权限\n"echo -e "[/www/wwwroot/web1/test]\n"echo -e "@test=rw\n"echo -e"------example end----------\n\n"echo '按下 <CTRL-D> 退出'echo -n "请输入权限配置,先目录后用户和权限:"echo -e "\n"while read auths; doecho "${auths}" >>$tmp_file_authzecho "${auths} 已保存,请继续:"doneecho "正在保存您的配置,请稍后......"echo -e "============配置authz完成==============\n"
}setpwd() {echo -e "===============进入3.定义账号密码===============\n"echo "[users]" >$tmp_file_passwdecho '按下 <CTRL-D> 退出'echo -n '请输入账户和密码,格式【用户名=密码】: 'echo -e "\n"while read users; doecho "$users" >>$tmp_file_passwdecho "${users} 已保存,请继续以下一个:"doneecho -e "=============密码设置完成======================\n\n"}setsvnconf() {echo "=========4.定义svnserve权限(自动完成)========="echo "===                                        "echo "===          请按照提示操作输入               "echo "===                                        "echo "============================================"echo "[general]" >$tmp_file_serveecho "anon-access = none" >>$tmp_file_serveecho "auth-access =write" >>$tmp_file_serveecho "password-db = passwd" >>$tmp_file_serveecho "authz-db = authz" >>$tmp_file_serveecho -e "自动配置为:\n"cat $tmp_file_serveecho -e "\n"echo -e "=========svnserve权限已经自动完成=========\n"}sethook() {echo "=========5.接下来配置hook脚本========="echo "============================================"echo "===                                         "echo "===这里存放提交后需要执行的脚本命令、提醒等操作======"echo "===同步svn版本到网站目录如:                     "echo "指令:svn update ${webdir}  --username [用户名] --password [密码] "echo "===在如给目录设置权限(更新后将网站目录重新分配拥有者和权限,www:www比较安全,默认是root:root):"echo -e "指令:chown www:www /web/test -R \n"echo -e "============================================\n\n"echo "#!/bin/bash" >$tmp_file_hookecho "export LANG=\"zh_CN.UTF-8\"" >>$tmp_file_hookecho '按下 <CTRL-D> 退出'echo -e "下面的格式:【--username 用户名  --password  用户密码】,如'svn update /www/wwwroot/web1/ --username u1 --password 123456'\n"echo -n '请输入需要执行的shell脚本命令: 'echo -e "\n"while read cmds; doecho "${cmds}" >>"$tmp_file_hook"echo " $cmds 已保存"doneecho -e "正在给post-commit文件设置执行权限755...\n"chmod 755 "$tmp_file_hook"echo -e "post-commit文件权限分配完成\n"echo -e "=========hook同步服务配置完成=========\n"}
setport() {echo -e "==========6.监听端口配置===========\n"echo "请输入监听的端口号,如5551:"read portif [ $port ]; thenecho "您的端口号是:${port}"echo "$port" >>$tmp_file_portelseport=50001echo "端口未设置,默认50001"fiecho -e "==========您的配置已经完成===========\n"
}#开始配置
startconf() {echo -e "\n\n==========开始配置==========\n\n"echo -e "==============自动执行中=============\n"echo -e "==============正在创建目录${svn_dir}=====\n"svnadmin create "$svn_dir"if [ ! -d "$svn_dir" ]; thenecho "创建${svn_dir}失败,已终止配置!"elseecho -e "==============创建目录${svn_dir}=====√\n"ficp $tmp_file_authz "${svn_dir}/conf/"echo -e "==============copy file ${tmp_file_authz}=====√\n"cp $tmp_file_passwd "${svn_dir}/conf/"echo -e "==============copy file ${tmp_file_passwd}=====√\n"cp $tmp_file_serve "${svn_dir}/conf/"echo -e "==============copy file ${tmp_file_serve}=====√\n"cp $tmp_file_hook "${svn_dir}/hooks/"echo -e "==============copy file ${tmp_file_hook}=====√\n"echo -e "==============文件配置完成,接下来配置监听=============\n"#svnserve -d -r /svn/test --listen-port 123456 #监听123456这个端口,需要提前从服务器放出i来svnserve -d -r "${svn_dir}" --listen-port "${port}"echo -e "==============监听已启动,接下来检出一次测试=============\n"echo -e "请输入本服务器的IP地址:"read ipaddrif [ -z $ipaddr ]; thenecho "请输入本服务器的IP地址:"read ipaddrif [ -z $ipaddr ]; thenecho "非常感谢您的不配做,接下来的工作交给您自己操作了,再见"exitelseecho -e "正在检出....\n"fielseecho -e "正在检出....\n"fiecho "svn checkout svn://${ipaddr}:${port}${webdir} --username u1 --password userpwd"echo -e "还是要你自己来啊,最后检出一下哈,按照上面的格式检出到目标网站,祝您生活愉快\n"echo -e "如果需要开机自动启动,请自行添加监听到启动文件,如/etc/rc.local文件新增监听命令\n"echo -e "开启自动监听可以直接追加开启命令:echo svnserve -d -r ${svn_dir} --listen-port ${port} >> /etc/rc.local "}setauthz
setpwd
setsvnconf
sethook
setport
startconf

linux svn checkout代码shell脚本相关推荐

  1. linux猜数字代码,Shell脚本实现猜数字游戏

    本文实例为大家分享了shell实现猜数字游戏的具体代码,供大家参考,具体内容如下 这里的guem可以随便写,比如a.b之类的也可以 vim guem.sh 编辑脚本 #!/bin/bash init( ...

  2. Linux下如何执行Shell脚本

    Linux下如何执行Shell脚本 Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等 ...

  3. Linux_《Linux命令行与shell脚本编程大全》第十章学习总结

    时间:2017年08月24日星期四 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  4. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  5. 《linux命令行与shell脚本编程大全》第三版 - 核心笔记(3/4):函数与图形化脚本

    <linux命令行与shell脚本编程大全> 全书4部分: ☆ [1]linux命令行(1-10章) ☆ [2]shell脚本编程基础(11-16章) ☆ [3]高级shell脚本编程(1 ...

  6. linux csh 安装,linux安装gcc的shell脚本

    原标题:linux安装gcc的shell脚本 GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,它能把易于人类使用的高级语言编写的源代码构建成计算机能 ...

  7. linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统,由于没法将数据写入到cd,所以一旦重启,之前操作过后的一切数据都会丢失. 第二章 第三章 1.man手 ...

  8. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

最新文章

  1. Quintum 语音网关设置方法
  2. [转]ubuntu下ATI/Intel双显卡切换的方法
  3. c语言函数求pi的近似值,C语言 用π/4=1-1/3+1/5-1/7+... 求π的近似值
  4. python写网页脚本_东拼西凑用python脚本登录web管理页面做巡检(实现)
  5. 关于举办“2022年(第15届)中国大学生计算机设计大赛”通知
  6. smartdns使用指南_SmartDNS 使用教程(PLUS+版)
  7. 产品经理眼中的SLAM技术学习路径
  8. 如何设置软件开机自动启动
  9. 人民日报探店联想安定门店,联想智慧零售变革现成效
  10. 阻抗跟踪电量计开发及量产流程
  11. 【汇编语言】转移指令循环指令
  12. item在C语言中是什么意思中文,英语item的中文是什么意思
  13. 非华为电脑安装华为电脑管家多屏协同
  14. plsql 查看表结构所有的字段_产品操作MySQL第2篇 – 设计一张表
  15. 插入排序与选择排序的比较
  16. Powerpc也开核
  17. Sentiment Analysis at SEPLN (TASS)-2019: Sentiment Analysis at Tweet Level Using Deep Learning
  18. 核桃编程python年课_2019年核桃编程春季班开抢啦!
  19. canvas--案例(星)
  20. MIT 6.828 (三) Lab 3: User Environments

热门文章

  1. cad怎么画立体图形教学_CAD怎么画立体图,手把手教你画三维图形
  2. 安装一个apk引起的无法开机。
  3. [RK3399][Android7.1]触摸屏TP,敦泰FT5436驱动移植
  4. 数据结构的一些基本术语概念-严蔚敏老师
  5. 921天,从小厂到入职阿里
  6. mac电脑使用普通键盘截图,全选,拷贝(复制),移动文件的快捷键是什么?
  7. TriSun PDF to X中文版批量pdf转换功能
  8. 使用百度API实现热点(WIFI)、GPS、基站定位
  9. xml中的大于小于号转义
  10. 墨者_密码学加解密实训(摩斯密码第1题)