Ubuntu系统创建SVN多仓库脚本

1、创建仓库脚本

#!/bin/bash

username=$1

proname=$2

basepath=${3:-’/home/svn’}

if [ $# -eq 0 ] || [ $# -gt 3 ]

then

{

echo “usage: sudo $0 username projectname [basepath]”

echo “username:执行此操作的linux用户名,一般是当前登录用户”

echo “projectname: SVN项目库名称”

echo “basepath:SVN项目库存放的位置,一般默认/home/svn”

echo “example: sudo $0 admins myproject /home/svn”

exit 1800

}

else

{

echo “——————————”

echo “Current User is “${username}

echo “Project Name is “${proname}

echo “Create on the Path :”${basepath}

echo “——————————”

echo “检查并配置环境……”

if [ ! -e /usr/bin/svnadmin ]

then

apt-get install subversion -y >/dev/null && echo “Subversion安装成功!”

else

echo “Subversion已经安装!”

fi

if [ ! -e /etc/apache2/apache2.conf ]

then

{

apt-get install apache2 -y > /dev/null && echo “Apache2安装成功!”

}

else

echo “Apache2已经安装!”

fi

modnum=`ls /etc/apache2/mods-enabled/ | cat | grep dav_svn | wc -l`

if [ $modnum -eq 0 ]

then

apt-get install libapache2-svn -y >/dev/null && echo “Apache Dav_svn Mod安装完成!”

else

echo “DAV_SVN Module已经安装完成!”

fi

modnumphp=`ls /etc/apache2/mods-enabled/ | cat | grep php5 | wc -l`

if [ $modnumphp -eq 0 ]

then

apt-get install libapache2-mod-php5 -y >/dev/null && echo “Apache php5 Module安装完成”

else

echo “PHP5 Module已经安装完成!”

fi

G=`grep subversion /etc/group | wc -l`

if [ "$G" -eq "0" ]

then

{

addgroup subversion >/dev/null

usermod -G subversion -a www-data >/dev/null

usermod -G subversion -a ${username}> /dev/null

}

fi

if [ ! -d ${basepath}/repository ]

then

mkdir -p ${basepath}/repository >/dev/null && echo “主目录建立完成”

else

echo “目录已经存在!”

fi

if [ ! -d ${basepath}/repository/${proname} ]

then

svnadmin create ${basepath}/repository/${proname} > /dev/null && echo “项目库建立成功!”

else

{

cp -Rf ${basepath}/repository/${proname} ${basepath}/repository/${proname}.bak >/dev/null

rm -Rf ${basepath}/repository/${proname} >/dev/null

svnadmin create ${basepath}/repository/${proname} >/dev/null && echo “项目库已经存在,重新创建,项目备份为.bak目录!”

}

fi

numloc=`cat /etc/apache2/apache2.conf | grep “Location /${proname}” | wc -l`

if [ $numloc -eq 0 ]

then

{

echo ‘<Location /’${proname}’>

DAV svn

SVNPath ‘${basepath}’/repository/’${proname}’

AuthType Basic

AuthName “‘${proname}’ Subversion Repository”

AuthUserFile ‘${basepath}’/conf/passwd

AuthzSVNAccessFile ‘${basepath}’/conf/authz/’${proname}’.authz

Require valid-user

</Location>’ | tee -a /etc/apache2/apache2.conf >/dev/null && echo “项目建立成功,访问地址:http://ip/${proname}”

}

fi

chown -R ${username}:subversion ${basepath} >/dev/null

chmod -R g+rws ${basepath} >/dev/null

if [ ! -e "${basepath}/conf/passwd" ]

then

{

mkdir -p ${basepath}/conf/authz > /dev/null

touch ${basepath}/conf/authz/${proname}.authz > /dev/null

htpasswd -cb ${basepath}/conf/passwd super super >/dev/null && echo “用户添加成功,默认用户名:super,密码:super”

}

fi

echo ‘[/]

super = rw ‘ | tee -a ${basepath}/conf/authz/${proname}.authz >/dev/null && echo “授予权限成功”

if [ ! -d ${basepath}/www ]

then

mkdir -p ${basepath}/www >/dev/null

fi

if [ ! -e '${basepath}/www/index.php' ]

then

{

touch ${basepath}/www/index.php >/dev/null

chmod 755 ${basepath}/www/index.php >/dev/null

}

fi

num=`cat ${basepath}/www/index.php | wc -l`

if [ $num -eq 0 ]

then

{

echo ‘Alias /security/ “‘${basepath}’/www/”

<Directory “‘${basepath}’/www/”>

AuthType Basic

AuthName “svntools repository”

AuthUserFile ‘${basepath}’/conf/passwd

Require valid-user

</Directory>’ | tee -a /etc/apache2/apache2.conf >/dev/null && echo “add change password location”

echo ‘

<?

$auth_user = $_SERVER["PHP_AUTH_USER"];

$auth_pass = $_SERVER["PHP_AUTH_PW"];

?>

<html>

<head>

<title>Change SVN Password</title>

<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />

</head>

<body>

<div align=”center”>

<h1>SVN用户密码修改页面</h1>

<?

if ($_REQUEST["action"] != “modify”) {

?>

<script language = “javaScript”><!–

function check_and_submit(myform) {

var oldpass = myform.oldpass.value;

var newpass = myform.newpass.value;

var repeatpass = myform.repeatpass.value;

if (oldpass == “”) {

alert(“原密码不能为空!”);

myform.oldpass.focus();

}

else if (newpass == “”) {

alert(“新密码不能为空!”);

myform.newpass.focus();

}

else if (repeatpass == “” || repeatpass != newpass) {

alert(“请确认密码,是否为空或者两次密码匹配!”);

myform.repeatpass.focus();

}

else

myform.submit();

}

// –></script>

<form method=”post”>

<input type=”hidden” name=”action” value=”modify”/>

<table>

<tr>

<td>用户登录名:</td>

<td align=”left”><?=$auth_user?></td>

</tr>

<tr>

<td>先前密码:</td>

<td><input type=”password” size=20 name=oldpass></td>

</tr>

<tr>

<td>更新密码:</td>

<td><input type=”password” size=20 name=newpass></td>

</tr>

<tr>

<td>确认密码:</td>

<td><input type=”password” size=20 name=repeatpass></td>

</tr>

<tr>

<td colspan=2>

<input type=”button” value=”修改” onclick=”check_and_submit(this.form)”>

<input type=”reset” value=”复位”>

</td>

</tr>

</table>

</form>

<?

} else {

$old_pass = $_REQUEST["oldpass"];

$new_pass = $_REQUEST["newpass"];

if ($old_pass != $auth_pass)

$msg = “原密码错误!”;

else

{

$cmd = “htpasswd -b ‘${basepath}’/conf/passwd $auth_user $new_pass”;

system($cmd, $res);

if ($res == 0)

$msg = “用户:[$auth_user] 的密码修改成功,请重新登录确认.”;

else

$msg = “用户:[$auth_user] 的密码修改失败,请联系管理员.”;

}

?>

<script language=”javaScript”><!–

alert(“<?=$msg?>”);

window.location.href=”<?=$_SERVER["PHP_SELF"]?>”

// –></script>}

<?

}

?>

</div>

</body>

</html>’ | tee ${basepath}/www/index.php >/dev/null && echo “密码修改页面创建成功!”

}

fi

chown -R ${username}:subversion ${basepath}/repository >/dev/null

chmod -R g+rws ${basepath}/repository >/dev/null

fwnum=`ufw status | grep 80 | cat | wc -l`

if [ $fwnum -eq 0 ]

then

ufw allow 80/tcp >/dev/null && echo “Add Firewall Rule is success !”

fi

/etc/init.d/apache2 restart &>/dev/null

}

fi

2、添加新用户:htpasswd -b /home/svn/conf/passwd 用户名 密码

3、修改权限:编辑/home/svn/conf/authz/项目授权文件

安装和卸载Windows服务

在windows下安装了nginx, 郁闷是发现它没有以服务方式运行, 也就是说当用户注销后,程序
会终止.因此需要将nginx作为服务运行.

阅读全文…

Ubuntu+apache+svn配置备忘

此配置按照ubuntu登录用户为administrator,项目名为hwjn配置,如需配置其他项目,修改替换即可。userName = administrator
projectName = hwjn

阅读全文…

Apache2.2和Tomcat 6.0.18的整合

1、下载安装apache2.2和tomcat6
2、http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/下载mod_jk-1.2.31-httpd-2.2.3.so
3、将mod_jk-1.2.31-httpd-2.2.3.so文件拷贝到apache的modules目录,改名为mod_jk2.so
4、在apache的config文件中添加如下行:
    LoadModule jk_module modules/mod_jk2.so
    JkWorkersFile conf/workers.properties
    JkLogFile "mod_jk2.log"
    JkLogLevel info

阅读全文…

Cacti配置监控Apache服务

我们平时使用apache常常了解他的性能只能使用ps aux|grep httpd|wc -l查看有多少个进程,但处理了多少http的请求我们不清楚,进程是不是在工作,还是在等都不是很明白,要了解apache的性能,我们需要使用Apache Server Status的模块来详细了解apache工作的怎么样.

阅读全文…

Mediawiki和Cacti从Windows迁移到Linux的注意事项

Mediawiki的迁移非常简单,Linux平台和Windows平台没有什么区别,主要注意大小写和数据库配置即可。

Cacti的迁移就需要注意,配置路径要确认好。安装各种支持包时,需要加入新的源,具体步骤参考http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b即可。结合前面的博文http://blog.tianbaoyong.com/defaultcat/cacti-nagios-ntop-detailed-steps-to-install.html就可以了。

CentOS配置SNMPV3进行安全的监控

前提条件:
安装net-snmp net-snmp-utils net-snmp-devel

具体步骤:
1. 停止snmpd服务
service snmpd stop
2. 执行如下命令,按照提示输入用户名和密码,并确认密码
net-snmp-config –create-snmpv3-user
3. 启动snmpd服务
service snmpd start
4. 利用下面的命令测试。
snmpget -v 3 -u username -l authNoPriv -A "password" -X "password" 60.216.52.53 sysUpTime.0

Oracle 11g R2 Linux X64 安装备忘

#######################环境设置###########################
1、安装相关包
yum install \
gcc make binutils openmotif setarch libaio gcc  glibc \
glibc-common glibc-headers glibc-devel \
compat-db compat-gcc-34  compat-gcc-34-c++ compat-glibc \
compat-glibc-headers compat-libgcc-296 compat-libstdc++-33 \
compat-libstdc++-296 avahi-compat-libdns_sd \
java-1.4.2-gcj-compat-devel java-1.4.2-gcj-compat \
java-1.4.2-gcj-compat-src java-1.4.2-gcj-compat-javadoc \
java-1.4.2-gcj-compat-devel libaio-devel unixODBC \
unixODBC-devel pdksh perftest sysstat 

阅读全文…