德克云技术联盟
标题: 北京某医疗设备科技公司配置管理环境【附件为用户手册】 [打印本页]
作者: 李臻宇 时间: 2014-7-14 15:49
标题: 北京某医疗设备科技公司配置管理环境【附件为用户手册】
环境介绍域名系统:Bind
邮件系统:Sendmail(SMTP)+Dovecot(POP3/IMAP)
缺陷管理:BugZilla
版本控制:Subversion(证书验证)
1.软件安装配置1.1 DNS DNS是邮件系统的一个部分,想要使用邮件系统,必须在DNS中配置邮件记录。
1.1.1 软件包检查Code-------------------------------------------------------------------------------------
[root@scmbug etc]# rpm -qa | grep bind
ypbind-1.19-8.el5
bind-libs-9.3.4-6.P1.el5
bind-utils-9.3.4-6.P1.el5
bind-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
[root@scmbug etc]# rpm -qa | grep caching
caching-nameserver-9.3.4-6.P1.el5
--------------------------------------------------------------------------------------------
1.1.2 DNS配置编辑DNS主配置文件named.caching-nameserver.conf
[root@scmbug etc]# vi/var/named/chroot/etc/named.caching-nameserver.conf
options {
forwarders { 202.106.46.151;202.106.0.20; }; #未知区域解析服务器
listen-on port 53 { 192.168.101.233; }; #监听端口
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
allow-query { any; }; #允许查询
};
logging {
channeldefault_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; }; #允许范围
match-destinations { any; }; #允许范围
recursion yes;
include"/etc/named.rfc1912.zones";
};
编辑DNS主配置文件named.rfc1912.zones
[root@scmbug etc]# vi/var/named/chroot/etc/named.rfc1912.zones
添加如下内容
zone "uis.com" IN {
typemaster;
file"uis.com.zone";
};
zone "101.168.192.in-addr.arpa" IN {
typemaster;
file"uis.com.local";
};
复制解析文件模版
cp /var/named/chroot/var/named/localhost.zone/var/named/chroot/var/named/uis.com.zone –p
cp /var/named/chroot/var/named/named.local/var/named/chroot/var/named/uis.com.local –p
编辑解析文件
[root@scmbug etc]# vi/var/named/chroot/var/named/uis.com.zone (正向)
$TTL 86400
@ IN SOA scmbug.uis.com. root.uis.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D) ; minimum
IN NS scmbug.uis.com.
IN MX 10 scmbug.uis.com.
IN A 192.168.101.233
scmbug IN A 192.168.101.233
pop INA 192.168.101.233
smtp INA 192.168.101.233
[root@scmbug etc]# vi/var/named/chroot/var/named/uis.com.local (反向)
$TTL 86400
@ IN SOA scmbug.uis.com. root.uis.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400) ; Minimum
IN NS scmbug.uis.com.
233 IN PTR uis.com.
233 IN PTR scmbug.uis.com.
233 IN PTR pop.uis.com.
233 IN PTR smtp.uis.com.
设置开机自动启动DNS服务
[root@scmbug etc]# chkconfig --level 35named on
测试DNS服务器
[root@scmbug ~]# nslookup
> set type=a
> scmbug
Server: 192.168.101.233
Address: 192.168.101.233#53
Name: scmbug.uis.com
Address: 192.168.101.233
> set type=ptr
> 192.168.101.233
Server: 192.168.101.233
Address: 192.168.101.233#53
233.101.168.192.in-addr.arpa name = uis.com.
233.101.168.192.in-addr.arpa name = scmbug.uis.com.
> set type=mx
> uis.com
Server: 192.168.101.233
Address: 192.168.101.233#53
uis.com mail exchanger = 10 scmbug.uis.com.
> exit
2.邮件系统搭建2.1 软件包检查[root@scmbug ~]# rpm -qa | grep sendmail
sendmail-8.13.8-2.el5
sendmail-cf-8.13.8-2.el5
[root@scmbug ~]# rpm -qa | grep dovecot
dovecot-1.0-1.2.rc15.el5
2.2 服务配置2.2.2 Sendmail
修改监听地址
[root@scmbug ~]# vi /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl(DEL)
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl (ADD)
生成配置文件
[root@scmbug ~]# m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
修改邮件后缀
[root@scmbug ~]# vi /etc/mail/local-host-names
# local-host-names - include all aliases for yourmachine here.
uis.com
修改可转发服务列表
[root@scmbug ~]# vi /etc/mail/access
# Check the /usr/share/doc/sendmail/README.cf filefor a description
# of the format of this file. (search for access_dbin that file)
# The /usr/share/doc/sendmail/README.cf is part ofthe sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
scmbug.uis.com REALY
生效可转发列表
[root@scmbug ~]# cd /etc/mail/; make access.db ; cd -
重新启动服务/开机自动启动服务
[root@scmbug ~]# chkconfig --level 35 sendmail on
[root@scmbug ~]# /etc/init.d/sendmail restart
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
检查是否监听端口
[root@scmbug ~]# netstat -ant | grep 25
tcp 0 0 192.168.101.233:25 0.0.0.0:* LISTEN
2.2.2 Dovecot
[root@scmbug ~]# vi /etc/dovecot.conf
protocols = pop3 #支持协议
listen = #监听IP
[root@scmbug ~]# /etc/init.d/dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
[root@scmbug ~]# chkconfig --level 35 dovecot on
创建邮件帐号脚本
#!/bin/sh
echo "
lease input mailaccount which youwant:" read MAILACCOUNT
echo "
lease input Password:" read PASSWD
echo "User
MAILACCOUNT/Password
PASSWD" echo "Contune?[y/n]"
read CHOS
case $CHOS in
y|Y)
/usr/sbin/useradd $MAILACCOUNT
/bin/echo $PASSWD | /usr/bin/passwd --stdin $USER
;;
n|N)
echo"bye"
;;
*)
echo"Just suport Y or N..."
esac
3 创建证书系统3.1软件包检查与安装Openssl#证书系统
[root@scmbug ~]# rpm -qa | grep openssl
openssl-0.9.8b-8.3.el5_0.2
openssl-devel-0.9.8b-8.3.el5_0.2
[root@scmbug ssl.ca]# rpm -qa | grep mod_ssl
mod_ssl-2.2.3-11.el5.centos
ssl.ca#帮助我们快速建立CA的工具
[root@scmbug ~]# mv ssl.ca-0.1 ssl.ca ; mv ssl.ca/etc/httpd/conf/
3.2 创建CA系统ssl.crt#建立证书及钥匙存放的目录
[root@scmbug ssl.ca]# mkdir /etc/httpd/conf/ssl.crt
创建根证书/根证书密钥/自签名根证书
[root@scmbug ssl.ca]# ./new-root-ca.sh
创建服务器证书/服务器密钥
[root@scmbug ssl.ca]# ./new-server-cert.sh server
[root@scmbug ssl.ca]# ./sign-server-cert.sh server
创建用户证书/用户密钥
[root@scmbug ssl.ca]# ./new-user-cert.sh uis
格式化用户密钥以便可以在Windows中使用
[root@scmbug ssl.ca]# ./p12.sh uis
3.3 配置CA系统修改ssl.conf配置文件
[root@scmbug ssl.ca]# vi /etc/httpd/conf.d/ssl.conf
SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile/etc/httpd/conf/ssl.crt/server.key
SSLCACertificatePath /etc/httpd/conf/ssl.crt/
SSLVerifyClient require #强制要求客户端证书
SSLVerifyDepth 1
从服务器拷贝ca.crt和uis.p12
双击ca.crt就可以添加我们的证书系统为信任证书系统
重新启动apache服务就可以测试证书系统了。
4.2 MySQL配置[root@scmbug ssl.ca]# /etc/init.d/mysqld start
Initializing MySQL database: [ OK ]
Starting MySQL: [ OK ]
[root@scmbug ssl.ca]# mysqladmin -u root password'feoneon'
[root@scmbug ssl.ca]# mysql -u root -p
mysql> create database bugs
-> ;
Query OK, 1 row affected (0.00 sec)
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bugs |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)
mysql> grant all on bugs.* to scmdbuser@localhostidentified by 'scmdbpasswd';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
修改上传限制
[root@scmbug ~]# vi /etc/my.cnf
[mysqld]
# Allow packets up to 1M
max_allowed_packet=1M
修改填写最小单词
[mysqld]
# Allow small words in full-textindexes
ft_min_word_len=2
允许附件表增长到4G
mysql> use $bugs_db
mysql> ALTER TABLE attachments
AVG_ROW_LENGTH=1000000,MAX_ROWS=20000;
5.Bug管理系统5.1软件包检查/安装[root@scmbug ssl.ca]# rpm -qa | grep http
httpd-2.2.3-11.el5.centos
[root@scmbug ssl.ca]# rpm -qa | grep mysql-server
mysql-server-5.0.22-2.1.0.1
[root@scmbug ssl.ca]# rpm -qa | grep mod_auth_mysql
mod_auth_mysql-3.0.0-3.1
yum install gd gd-devel freetype php-gdImageMagick-perl –y
5.2 Bugzilla软件包支持NCFTP
[root@scmbug ~]# tar jxf ncftp-3.2.1-src.tar.bz2
[root@scmbug ~]# cd ncftp-3.2.1
[root@scmbug ncftp-3.2.1]#ls
[root@scmbug ncftp-3.2.1]#./configure ; make ;make install
[root@scmbug ncftp-3.2.1]#cd ~
Bugzilla
[root@scmbug ~]# tar zxf bugzilla-3.0.4.tar.gz
[root@scmbug ~]# mv bugzilla-3.0.4/var/www/html/bugs
[root@scmbug ~]# cd /var/www/html/bugs/
[root@scmbug bugs]# ./checksetup.pl –modulescheck
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Email::Send"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Template"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Email::MIME::Modifier"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Date::Format"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"GD::Graph"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Template:
lugin::GD::Image"' [root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Email::Reply"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"HTML::Scrubber"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"XML::Twig"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"MIME:
arser"' [root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"Chart::Base"'
[root@scmbug bugs]# /usr/bin/perl -MCPAN -e 'install"
atchReader"' [root@scmbug bugs]# vi localconfig
$db_user = 'scmdbuser';
$db_pass = 'scmdbpasswd';
[root@scmbug bugs]# ./checksetup.pl
5.3 Apache对Bugzilla的支持[root@scmbug bugs]# vi /etc/httpd/conf/httpd.conf
#添加如下描述
<Directory /var/www/html/bugs>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
5.4 Bugzilla简单配置Parameters:
RequiredSettings:
Ssl: always
AdministrativePolicies:
Allowmailchange: off
UserAuthentication
Createemailregexp: @uis.com
Attachments
Allow_attach_url: on
Maxlocalattachment: 100
BugChange Policies:
Commentoncreate: on
Commentonaccept: on
Commentonconfirm: on
Commentonresolve: on
Commentonreassign: on
Commentonreassignbycomponent: on
Commentonreopen: on
Commentonclose: on
Commentonduplicate: on
BugFields:
Useclassification: on
Showallproducts: on
Usestatuswhiteboard: on
Usebugaliases: on
GroupSecurity
Makeproductgroups on
Useentrygroupdefault on
Email:
Mail_deliver_method SMTP
Smtpserver 192.168.101.233
QueryDefaults
specific_search_allow_empty_words: on
UserMatching:
Usemenuforusers: on
6.版本控制系统Subversion6.1检查软件包安装(Apache+mysql+svn)[root@scmbug ssl.ca]# rpm -qa | grep subversion
subversion-1.4.2-2.el5
[root@scmbug ssl.ca]# rpm -qa | grep mod_dav_svn
mod_dav_svn-1.4.2-2.el5
6.2服务配置6.2.1 Apache对Subversion的支持[root@scmbug bugs]# vi /etc/httpd/conf/httpd.conf
<Location /svn>
DAV svn
#SVNPath /repository/test
SVNParentPath /repository
AuthzSVNAccessFile /repository/auth/authz
AuthName "RTS InfoTech SVN .."
AuthType Basic
SSLRequireSSL
AuthMYSQLEnable on
AuthMySQLUser scmdbuser
AuthMySQLPassword scmdbpasswd
AuthMySQLDB bugs
AuthMySQLUserTable profiles
AuthMySQLNameField login_nameF
AuthMySQLPasswordField cryptpassword
require valid-user
</Location>
[root@scmbug bugs]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@scmbug bugs]# chkconfig --level 35 httpd on
6.2.2 配置SVN初始化repository.
[root@rep ~]# mkdir repository
[root@rep ~]# svnadmin create /repository/test
[root@rep ~]# chown apache.apache repository/ -R
[root@rep /]# mkdir /repository/auth
[root@rep /]# cp /repository/test/conf/authz/repository/auth/ -p
附录1. iptables防火墙安全策略iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -p all -jACCEPT
iptables -A INPUT -s 192.168.2.222 -d 192.168.2.222-p all -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED-j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 –p tcp –dport2222 –j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 –p udp –dport2222 –j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 25-j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p udp --dport 25-j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p udp --dport110 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport110 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 53-j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p udp --dport 53-j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p udp --dport443 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport443 -j ACCEPT
附录2.服务器脚本Server.sh#!/bin/sh
#Description
#===========================Define====================
LOGFILE=/repository/.backup/LOG
BAKPATH=/repository/.backup/
MYDATE=`date +%d/%m/%Y`
THIS_HOST=`hostname -s`
USER=`whoami`
#=====================================================
while :
do
tput clear
cat << RAIN
________________________________________________________________
User
USER Host
THIS_HOST Date
MYDATE ----------------------------------------------------------------
1. List all repositorys on server
2. Add new repository toSubversion
3. Backup Repostiroy
4. Backup Database
5. View authentication file
6. Modify authenticaion file(SVN)
7. View Log file
8. Maintenance system
H. Help screen
Q. Exit Menu
________________________________________________________________
RTS
RAIN
echo -e -n "\t\tYour Choice[1,2,3,4,5,6,7,H,Q]:"
readCHOICE
case$CHOICE in
1)#list repositorys
echo""
echo""
echo"Repository List:"
ls/repository/ | grep -v "test" | grep -v lost+found
echo""
echo""
;;
2)#add new repository
echo""
echo""
echo "Adding Repository to Subversion..."
echo -n"
lease input ProjectName:" readPROJECTNAME
echo -n"Create Project "$PROJECTNAME"?[y/n] "
readSTATUSCHOICE
case$STATUSCHOICE in
y|Y|yes)
mkdir /repository/$PROJECTNAME
/usr/bin/svnadmin create /repository/$PROJECTNAME
echo "[general]" > /repository/$PROJECTNAME/conf/svnserve.conf
echo "anon-access = none" >>/repository/$PROJECTNAME/conf/svnserve.conf
echo "auth-access = write" >>/repository/$PROJECTNAME/conf/svnserve.conf
echo "realm = $PROJECTNAME" >> /repository/$PROJECTNAME/conf/svnserve.conf
chmod 770 /repository/$PROJECTNAME/ -R
chown root.apache /repository/$PROJECTNAME/ -R
echo "Complete..."
;;
n|N|no)
echo "Bye....."
;;
*)
echo "
lease input Y or N" ;;
esac
;;
3)#backup repository
echo""
echo""
echo"Repositorys List:"
echo`ls /repository/ | grep -v test | grep -v lost+found`
echo"Choice the Repository which you want o backup.."
readBAKREPNAME
NewFile="$BAKPATH""$BAKREPNAME"-bak.tar.gz
echo"-------------------------------------------" >> $LOGFILE
echo`(date +"%y-%m-%d %H:%M:%S")` | tee -a $LOGFILE
echo "Starting backuprepository($BAKREPNAME)....." | tee -a $LOGFILE
echo"--------------------------" | tee -a $LOGFILE
if [ -f$NewFile ]
then
rm -f $NewFile >> $LOGFILE 2>&1
echo "[NewFile]
elete Old File Success!" | tee -a $LOGFILE /usr/bin/svnadmin hotcopy /repository/$BAKREPNAME"$BAKPATH""$BAKREPNAME"
cd $BAKPATH ; tar zcvf "$NewFile" "$BAKREPNAME" |tee -a $LOGFILE ;cd - > /dev/null 2>&1
else
/usr/bin/svnadmin hotcopy/repository/$BAKREPNAME "$BAKPATH""$BAKREPNAME"
cd $BAKPATH ; tar zcvf "$NewFile" "$BAKREPNAME" |tee -a $LOGFILE ;cd - > /dev/null 2>&1
fi
# cd "$BAKPATH"
rm -rf "$BAKPATH""$BAKREPNAME"
#cd - > /dev/null 2>&1
echo""
echo""
echo -n"Would you want to copy this file to remote storage?[y/n]"
readANS
case$ANS in
y|Y)
echo "
lease make sure the remoute storage was power on!..." echo "
ress Enter to continue......" read FROG
mount -t cifs -o username=administrator,password=feoneon//192.168.101.5/ServerBackup /mnt
if [ -f /mnt/Sign ]
then
cp "$NewFile" /mnt/ -rf-v
umount /mnt
echo "Remote Coyp Done"
else
exit;
echo "Remote Copy Failed!Can't mount remote storage"
fi
echo "Job Done!"
rm "$NewFile" -f > /dev/null 2>&1
;;
n|N)
echo "Bye"
;;
*)
echo "unknow command!"
;;
esac
;;
4)#backup database
#Thisscript can be automatic to backup our mysql database.
#Powered by Rain.Li
#------------Define-----------------------------
HOST=localhost
MYSQLNEWFILE=$BAKPATH/Mysql-DB-bak.tar.gz
MYSQLTEMPFILE=$BAKPATH/bak.sql
USERNAME=scmbuguser
PASSWD=scmbugpasswd
#------------------------WorkStarting(scmbug)----------------------------------------
echo"$TIMESUFFIXNEW" >> $LOGFILE
echo"-------------------------------------" >> $LOGFILE
echo`date +%H:%M:%S` >> $LOGFILE
echo"Start Backup the MySQL Database" | tee -a $LOGFILE
if [ -f$MYSQLNEWFILE ]
then
rm -f $MYSQLNEWFILE >> $LOGFILE 2>&1
echo "[Mysql-DB-bak.tar.gz]
elete Old File Success!" | tee -a $LOGFILE else
echo "[Mysql-DB-bak.tar.gz]:No Old Backup File!" | tee -a $LOGFILE
fi
/usr/bin/mysqldump -h $HOST -u$USERNAME -p$PASSWD --database scmbug >$MYSQLTEMPFILE
tarzcvf $MYSQLNEWFILE $MYSQLTEMPFILE
rm$MYSQLTEMPFILE -f
echo"[Mysql-DB-bak-$TIMESUFFIXNEW.tar.gz]:Backup Success!" | tee -a $LOGFILE
echo"MySQL databases backup over......" | tee -a $LOGFILE
echo"-------------------------------------" >> $LOGFILE
echo""
echo""
echo -n"Would you want to copy this file to remote storage?[y/n]"
readANS
case$ANS in
y|Y)
echo "
lease make sure theremoute storage was power on!..." echo "
ress Enter to continue......" read FROG
mount -t cifs -o username=administrator,password=feoneon//192.168.101.5/ServerBackup /mnt
if [ -f /mnt/Sign ]
then
cp "$MYSQLNEWFILE" /mnt/ -rf -v
umount /mnt
echo "Remote Coyp Done"
else
exit;
echo "Remote Copy Failed!Can't mount remote storage"
fi
echo "Job Done!"
rm "$MYSQLNEWFILE" -f > /dev/null 2>&1
;;
n|N)
echo "Bye"
;;
*)
echo "unknow command!"
;;
esac
;;
5)#view authentication file
cat/repository/.auth/authz.conf | more
;;
6)#modify autthentication file
vi/repository/.auth/authz.conf
;;
7)#view log file
cat$LOGFILE | more
;;
8)#maintenance system
echo"Building......."
echo"Building......."
echo"Building......."
;;
H|h)
echo"This is the help screen,noting here yet to help you!"
;;
Q|q)
echo"Bye~"
exit0
;;
*)echo -e "\t\t Unknown user response!"
;;
esac
echo -e-n "\t\tHit the return key to continue."
readDUMMY
done
"backup-sys.sh"#!/bin/sh
#Description
#This script can be automatic to backup ourrepository.
#
#------------------Public-------------------
BAKPATH=/repository/.backup/
SYSTEMPDIR="$BAKPATH"SYSTEMP
LOG="$BAKPATH"LOG
TIMESUFFIXNEW=`date +%y%m%d`
TIMESUFFIXOLD=`date +%y%m%d --date='3 days ago'`
FILE1=/repository/.auth/authz.conf
FILE2=/var/www/html/bugs/
#------------------Public-------------------
#--------------------System ConfigurationFile(Server)-------------------------------
echo "-------------------------------------">> $LOG
echo `date +%H:%M:%S` >> $LOG
echo "Start backup the ServerSysFiles........." >> $LOG
if [ -f"$BAKPATH"sysfile-bak-$TIMESUFFIXOLD.tar.gz ]
then
rm"$BAKPATH"sysfile-bak-$TIMESUFFIXOLD.tar.gz -f 2>&1
echo"["$BAKPATH"sysfile-bak-$TIMESUFFIXOLD.tar.gz]
elete Old FileSuccess" >> $LOG else
echo"["$BAKPATH"sysfile-bak-$TIMESUFFIXOLD.tar.gz]:No oldfile!" >> $LOG
fi
if [ -f"$BAKPATH"sysfile-bak-$TIMESUFFIXNEW.tar.gz ]
then
echo"[sysfile-bak-$TIMESUFFIXNEW.tar.gz]:The Backup file exists,Can'tBackup!" >> $LOG
else
mkdir$SYSTEMPDIR
cp$FILE1 $SYSTEMPDIR -r -p
cp$FILE2 $SYSTEMPDIR -r -p
cp/root/ServScript/* $SYSTEMPDIR -r -p
tarzcvf "$BAKPATH"sysfile-bak-$TIMESUFFIXNEW.tar.gz $SYSTEMPDIR
echo"[sysfile-bak-$TIMESUFFIXNEW.tar.gz]:File Backup Success!" >>$LOG
rm$SYSTEMPDIR -rf 2>&1
fi
echo "Server SysFiles backup done.......">> $LOG
echo "-------------------------------------">> $LOG
backup-mysql.sh#!/bin/sh
#Description
#This script can be automatic to backup our mysqldatabase.
#Powered by Rain.Li
#------------Define-----------------------------
BAKPATH=/repository/.backup
LOGFILE=/repository/.backup/LOG
TIMESUFFIXNEW=`date +%y%m%d`
TIMESUFFIXOLD=`date +%y%m%d --date='3 days ago'`
HOST=localhost
MYSQLNEWFILE=$BAKPATH/Mysql-DB-bak-$TIMESUFFIXNEW.tar.gz
MYSQLOLDFILE=$BAKPATH/Mysql-DB-bak-$TIMESUFFIXOLD.tar.gz
MYSQLTEMPFILE=$BAKPATH/bak.sql
USERNAME=scmbuguser
PASSWD=scmbugpasswd
#------------------------WorkStarting(scmbug)----------------------------------------
echo "$TIMESUFFIXNEW" >> $LOGFILE
echo"-------------------------------------" >> $LOGFILE
echo `date +%H:%M:%S` >> $LOGFILE
echo "Start Backup the MySQL Database" >>$LOGFILE
if [ -f $SMYSQLOLDFILE ]
then
rm -f$MYSQLOLDFILE >> $LOGFILE 2>&1
echo"[Mysql-DB-bak-$TIMESUFFIXOLD.tar.gz]
elete Old File Success!">> $LOGFILE else
echo"[Mysql-DB-bak-$TIMESUFFIXOLD.tar.gz]:No Old Backup File!" >> $LOGFILE
fi
if [ -f $MYSQLNEWFILE ]
then
echo"[Mysql-DB-bak-$TIMESUFFIXNEW.tar.gz]:The backup file is exists,Can'tbackup!" >> $LOGFILE
else
/usr/bin/mysqldump -h $HOST -u$USERNAME -p$PASSWD --database scmbug >$MYSQLTEMPFILE
tar zcvf$MYSQLNEWFILE $MYSQLTEMPFILE
rm$MYSQLTEMPFILE -f
echo"[Mysql-DB-bak-$TIMESUFFIXNEW.tar.gz]:Backup Success!" >>$LOGFILE
echo"MySQL databases backup over......" >> $LOGFILE
echo"-------------------------------------" >> $LOGFILE
fi
echo " "
echo " "
backup-rep.sh#!/bin/sh
#Description
#This script can automatic to backup our repository.
#
#------------------Public-------------------
LOGFILE=/repository/.backup/LOG
BAKPATH=/repository/.backup/
TIMESUFFIXNEW=`date +%y%m%d`
TIMESUFFIXOLD=`date +%y%m%d --date='3 days ago'`
#------------------Public-------------------
#-----------------Backup theRepository-------------------------------
NEWFILE1="$BAKPATH"Repository-bak-$TIMESUFFIXNEW.tar.gz
OLDFILE1="$BAKPATH"Repository-bak-$TIMESUFFIXOLD.tar.gz
REPTEMPDIR="$BAKPATH"REPTEMP
echo"----------------------------------------------------------------">> $LOGFILE
echo "$TIMESUFFIXNEW" >> $LOGFILE
echo"-------------------------------------" >> $LOGFILE
echo `date +%H:%M:%S` >> $LOGFILE
echo "Start Backup the Repository" >>$LOGFILE
if [ -f $OLDFILE1 ]
then
rm -f$OLDFILE1 >> $LOGFILE 2>&1
echo"[Repository-bak-$TIMESUFFIXOLD.tar.gz]
elete Old File Success!">> $LOGFILE else
echo"[Repository-bak-$TIMESUFFIXOLD.tar.gz]:No Old Backup File!" >>$LOGFILE
fi
if [ -f $NEWFILE1 ]
then
echo"[Repository-bak-$TIMESUFFIXNEW.tar.gz]:The backup file is exists,Can'tbackup!" >> $LOGFILE
else
for Iin `ls -a /repository`
do
if [ "$I" = "lost+found" ] || [ "$I" ="test" ] || [ "$I" = ".." ] || [ "$I" ="." ] || [ "$I" = ".backup" ]
then
echo "$I need notbackup!"
else
mkdir $REPTEMPDIR2>&1
/usr/bin/svnadmin hotcopy/repository/$I $REPTEMPDIR/$I
echo "Hot copy$I" >> $LOGFILE
fi
done
tarzcvf $NEWFILE1 $REPTEMPDIR
echo"[Repository-bak-$TIMESUFFIXNEW.tar.gz]:Backup Success!" >>$LOGFILE
rm$REPTEMPDIR -rf 2>&1
echo"Repository backup over......" >> $LOGFILE
echo"-------------------------------------" >> $LOGFILE
fi
backup-remote.sh#!/bin/sh
mount -t cifs -o username=administrator,password=feoneon//192.168.101.5/ServerBackup /mnt
if [ -f /mnt/Sign ]
then
cp /repository/.backup/* /mnt/ -rf -v >>/repository/.backup/LOG
umount /mnt
echo "Remote Coyp Done" >>/repository/.backup/LOG
else
exit;
echo "Remote Copy Failed!" >>/repository/.backup/LOG
fi
echo "Job Done!" >>/repository/.backup/LOG
欢迎光临 德克云技术联盟 (http://www.decoclouds.com/) |