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/项目授权文件
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