当前位置: 首页 > 编程笔记 >

Ubuntu下定时提交代码到SVN服务器的Shell脚本分享

盖高畅
2023-03-14
本文向大家介绍Ubuntu下定时提交代码到SVN服务器的Shell脚本分享,包括了Ubuntu下定时提交代码到SVN服务器的Shell脚本分享的使用技巧和注意事项,需要的朋友参考一下

有两个用途,一是偷懒不用去提交代码,二是在远程服务器上使用以作定期备份。


sudo gedit /etc/crontab


打开后加入这行

0 * * * * my_user_name    my_script_path

表示每个整点以my_user_name身份执行my_script_path。这里最好是使用当前的用户名,修改掉默认的root,否则可能以root身份会提交失败。详情请询问百度crontab的用法。

然后script的内容为:


#!/bin/bash

cd $my_code_path

# 添加所有新文件

svn st | grep "? \+" | sed "s/? \+//" | xargs svn add

# 删除所有本地缺失的文件

svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete

# 提交

svn ci -m 'auto commit by script'


也可以不修改/etc/crontab,而是把脚本 复制 或 软链接 到 /etc/cron.hourly/ 下,脚本应用su切换用户,改成:

#!/bin/bash

su - your_user_name <<EOF

cd $my_code_path

# 添加所有新文件

svn st | grep "? \+" | sed "s/? \+//" | xargs svn add

# 删除所有本地缺失的文件

svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete

# 提交

svn ci -m 'auto commit by script'

EOF

也可以不修改/etc/crontab,而是把脚本 复制 或 软链接 到 /etc/cron.hourly/ 下,脚本应用su切换用户,改成


#!/bin/bash

su - your_user_name <<EOF

cd $my_code_path

# 添加所有新文件

svn st | grep "? \+" | sed "s/? \+//" | xargs svn add

# 删除所有本地缺失的文件

svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete

# 提交

html" target="_blank">svn ci -m 'auto commit by script'

EOF

默认是每个小时的第17分钟执行。类似的,还有weekly、monthly、daily 文件夹。

关于定时备份服务器上的网页文件,会有两种意见,其优劣如下:
1.脚本定时commit(每个整点):开发人员可以随时修改服务器上的文件并立刻生效,不用关心备份工作。
2.脚本定时update(每隔30秒):可防止文件多人同时修改的冲突;需要本地搭建服务器环境,调试ok后才上传,否则commit后都得等一段时间,服务器才用上新代码。
以人为本的工作环境就是让人能偷懒就偷懒、让做事能便捷就便捷。能保证不会多人同时修改而产生冲突的话,选择第一种~~~

 类似资料:
  • 本文向大家介绍Shell脚本实现的基于SVN的代码提交量统计工具,包括了Shell脚本实现的基于SVN的代码提交量统计工具的使用技巧和注意事项,需要的朋友参考一下 最近没啥事,就用bash写了一个基于svn的代码统计小工具。 可以指定统计的目录,默认递归统计子目录。 目前还没有屏蔽指定目录的功能。哈 代码比较粗糙。不过先晒出来。

  • 本文向大家介绍Shell脚本实现复制文件到多台服务器的代码分享,包括了Shell脚本实现复制文件到多台服务器的代码分享的使用技巧和注意事项,需要的朋友参考一下 在多机集群环境中,经常面临修改配置文件后拷贝到多台服务器的情况,传统的执行scp比较麻烦,所以写了以下shell脚本,可以将指定文件拷贝到多台机器。 使用方法请参见HELP部分代码。

  • 本文向大家介绍Ubuntu服务器配置apache2.4的限速功能shell脚本分享,包括了Ubuntu服务器配置apache2.4的限速功能shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 过程都写成脚本了,原理都写在注释里,大家懂的。一键操作就是sudo bash xxx.sh 一些补充:Directory标签可以换成别的,如Location表示一个具体url。不加标签就是全局设置了。

  • 本文向大家介绍获取服务器信息的Shell脚本分享(ubuntu、centos测试通过),包括了获取服务器信息的Shell脚本分享(ubuntu、centos测试通过)的使用技巧和注意事项,需要的朋友参考一下 此脚本已经在ubuntu以及centos版本上测试通过,脚本如下: --------------------------------------------------------------

  • 本文向大家介绍CentOS下mysql定时备份Shell脚本分享,包括了CentOS下mysql定时备份Shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 1、备份语句   语句说明:   /usr/local/mysql/bin/mysqldump:MySql安装目录下 -utest:分为两块,一块为-u一块为test;其中-u表示其为用户名,test表示为当前用户名 -ptest:分为

  • 本文向大家介绍shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中,包括了shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中的使用技巧和注意事项,需要的朋友参考一下 现有需求:将oracle数据库中的数据准实时同步至某ftp服务器中,以便前端应用能定时从ftp服务器目录中取增量数据 方法:将加工脚本写为存储过程,然后利用shell脚本执行该存储过程并将增量数据导出