Subversion(SVN)是一个开源的版本控制系,管理着随时间改变的数据。这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。
本文目录:
linux svn服务器部署
linux svn客户端命令操作
linux svn备份与恢复
一、linux svn服务器部署
1、安装svn
[root@yang~]#yum install -y subversion
[root@yang~]#svnserve--version
svnserve,version 1.6.11 (r934486)
2、创建SVN版本库
[root@yang~]# mkdir /data/svn
[root@yang~]# svnadmin create /data/svn/project
[root@yangproject]# ls /data/svn/project/
conf db format hooks locks README.txt
3、配置SVN
[root@yangproject]# cd /data/svn/project/conf/
[root@yangconf]# ls
authz passwdsvnserve.conf
文件说明:
1)svnserve.conf: svn服务配置文件下。
2)passwd: 用户名密码文件。
3)authz: svn权限配置文件。
svnserve.conf文件
该文件配置项分为以下5项:
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access:控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
配置如下:
[root@yangconf]# grep -E "anon-access =|auth-access =|password-db =|authz-db =|realm=" svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svn/project
passwd文件
作用是配置用户名和密码
[root@yangconf]# cat passwd
yangyun= yangyunpasswd
test = testpasswd
authz文件
配置用户访问权限
[root@yangconf]# cat authz |grep -v '#'
[aliases]
[groups]
project_w=yangyun
project_r=test
[/]
project_w=rw
project_r=r
4、启动svn服务
[root@yangconf]# svnserve -d -r /data/svn
5、初始化svn数据
[root@yangdjango]# svn import mysite file:///data/svn/project/ -m 'initial import'
将会拷贝目录mysite到版本库的project下
[root@yangdjango]# svn list file:///data/svn/project
manage.py
mysite/
static/
templates/
web02/
在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。
二、linux svn客户端命令操作
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
简写:svn co
例:
svn co svn://115.28.24.178/project --username=yangyun --password=yangyunpasswd
#指定版本的文件
svn co svn://115.28.24.178/project --username=yangyun --password=yangyunpasswd-r 5
2、往本地版本库中添加新的文件
svn add file #此命令得在checkout出来的路径里才能操作
例如:
cp /root/123.txt./
svn add 123.txt #把123.txt加入到本地库中
A 123.txt
3、将改动的文件提交到版本库
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保锁,就使用--no-unlock开关)
简写:svn ci
例:
svn commit 123.txt -m 'add 123.txt' #只提交123.txt
svn commit -m 'add 123.txt' #默认提交当前目录下的所以文件
svn commit *.txt -m 'add 123.txt' #也可以正则匹配文件提交
4、加锁/解锁
svn lock -m "Loc 说明: centos 6.5mysql 5.5.37 mha4mysql-manager-0.55 mha4mysql-node-0.54 manager 192.168.1.1 配置mysql主从 server-id = 1 db2,db3忽略 db1主 db2备 db3从 db1主 db2备 和 db3从 配置略 安装mysql-MHA db1主 db2备 db3从 manager #这两个yum没有安装上 perl-Log-Dispatch perl-Parallel-ForkManager rpm -ivh perl-Mail-Sender-0.8.16-1.el6.rf.noarch.rpm 配置mysql-MHA tar -xzf mha4mysql-manager-0.55.tar.gz mkdir -p /usr/local/mha/scripts #验证ssh通讯 #验证mysql复制Mysql-MHA高可用实验测试
db1 192.168.1.2
db2 192.168.1.3
db3 192.168.1.4
db1:
read_only = 1
relay_log_purge=0
binlog_format=mixed grant replication slave on *.* to mharep@'192.168.1.%' identified by 'passwd'; flush privileges; stop slave; #设置复制权限帐号 GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456'; reset master; show master status\G
grant replication slave on *.* to mharep@'192.168.1.%' identified by 'passwd'; GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456'; flush privileges; reset master; slave stop; change master to MASTER_HOST='192.168.1.2', MASTER_PORT=3306,MASTER_USER='mharep', MASTER_PASSWORD='passwd',master_log_file='mysql-bin.000001', master_log_pos=107; slave start; show slave status\G;
reset master; slave stop; GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456'; flush privileges; change master to MASTER_HOST='192.168.1.2', MASTER_PORT=3306,MASTER_USER='mharep', MASTER_PASSWORD='passwd',master_log_file='mysql-bin.000001', master_log_pos=107; slave start; show slave status\G;
配置双机互信
manager ssh-keygen -t rsa for i in db1 db2 db3;do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i;done
ssh-keygen -t rsa for i in manager db2 db3;do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i;done
https://downloads.mariadb.com/files/MHA wget https://downloads.mariadb.com/files/MHA/mha4mysql-manager-0.55-0.el6.noarch.rpm wget https://downloads.mariadb.com/files/MHA/mha4mysql-node-0.54-0.el6.noarch.rpm
yum install perl-DBD-MySQL
yum localinstall mha4mysql-node-0.54-0.el6.noarch.rpm yum install perl cpan yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
wget http://downloads.naulinux.ru/pub/NauLinux/6x/x86_64/sites/School/RPMS/perl-Log-Dispatch-2.27-1.el6.noarch.rpm wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Parallel-ForkManager-0.7.5-2.2.el6.rf.noarch.rpm wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Mail-Sender-0.8.16-1.el6.rf.noarch.rpm wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Mail-Sendmail-0.79-1.2.el6.rf.noarch.rpm
rpm -ivh perl-Mail-Sendmail-0.79-1.2.el6.rf.noarch.rpm
yum localinstall perl-Log-Dispatch-2.27-1.el6.noarch.rpm
yum localinstall perl-Parallel-ForkManager-0.7.5-2.2.el6.rf.noarch.rpm
yum localinstall mha4mysql-node-0.54-0.el6.noarch.rpm
yum localinstall mha4mysql-manager-0.55-0.el6.noarch.rpm
[root@manager ~]# masterha_<Tab>
masterha_check_repl masterha_conf_host masterha_master_switch
masterha_check_ssh masterha_manager masterha_secondary_check
masterha_check_status masterha_master_monitor masterha_stop
ls mha4mysql-manager-0.55/samples/conf
masterha_default.cnf app1.cnf
cp mha4mysql-manager-0.55/samples/scripts/* /usr/local/mha/scripts [root@manager ~]# vim /usr/local/mha/mha.conf [server default] user=mha_manager password=123456 manager_workdir=/usr/local/mha manager_log=/usr/local/mha/manager.log remote_workdir=/usr/local/mha ssh_user=root repl_user=mharep repl_password=passwd ping_interval=1 secondary_check_script= masterha_secondary_check -s 192.168.1.2 -s 192.168.1.3 -s 192.168.1.4 master_ip_failover_script=/usr/local/mha/scripts/master_ip_failover #shutdown_script= /usr/local/mha/scripts/power_manager report_script= /usr/local/mha/scripts/send_report master_ip_online_change_script= /usr/local/mha/scripts/master_ip_online_change [server1] hostname=192.168.1.2 ssh_port=22 master_binlog_dir=/var/mysql/log candidate_master=1 [server2] hostname=192.168.1.3 ssh_port=22 master_binlog_dir=/var/mysql/log candidate_master=1 [server3] hostname=192.168.1.4 ssh_port=22 master_binlog_dir=/var/mysql/log no_master=1
masterha_check_ssh --conf=/usr/local/mha/mha.conf
wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/extras/RPMS/perl-Net-Telnet-3.03-2.el6.rfx.noarch.rpm
yum localinstall perl-Net-Telnet-3.03-2.el6.rfx.noarch.rpm
[root@manager ~]# masterha_check_repl --conf=/usr/local/mha/mha.conf Thu Jan 8 18:05:40 2015 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Thu Jan 8 18:05:40 2015 - Reading application default configurations from /usr/local/mha/mha.conf.. Thu Jan 8 18:05:40 2015 - Reading server configurations from /usr/local/mha/mha.conf.. Thu Jan 8 18:05:40 2015 - MHA::MasterMonitor version 0.55. Thu Jan 8 18:05:40 2015 - Dead Servers: Thu Jan 8 18:05:40 2015 - Alive Servers: Thu Jan 8 18:05:40 2015 - 192.168.1.2(192.168.1.2:3306) Thu Jan 8 18:05:40 2015 - 192.168.1.3(192.168.1.3:3306) Thu Jan 8 18:05:40 2015 - 192.168.1.4(192.168.1.4:3306) Thu Jan 8 18:05:40 2015 - Alive Slaves: Thu Jan 8 18:05:40 2015 - 192.168.1.3(192.168.1.3:3306) Version=5.5.37-log (oldest major version between slaves) log-bin:enabled Thu Jan 8 18:05:40 2015 - Replicating from 192.168.1.2(192.168.1.2:3306) Thu Jan 8 18:05:40 2015 - Primary candidate for the new Master (candidate_master is set) Thu Jan 8 18:05:40 2015 - 192.168.1.4(192.168.1.4:3306) Version=5.5.37-log (oldest major version between slaves) log-bin:enabled Thu Jan 8 18:05:40 2015 - Replicating from 192.168.1.2(192.168.1.2:3306) Thu Jan 8 18:05:40 2015 - Not candidate for the new Master (no_master is set) Thu Jan 8 18:05:40 2015 - Current Alive Master: 192.168.1.2(192.168.1.2:3306) Thu Jan 8 18:05:40 2015 - Checking slave configurations.. Thu Jan 8 18:05:40 2015 - Checking replication filtering settings.. Thu Jan 8 18:05:40 2015 - binlog_do_db= , binlog_ignore_db= Thu Jan 8 18:05:40 2015 - Replication filtering check ok. Thu Jan 8 18:05:40 2015 - Starting SSH connection tests.. Thu Jan 8 18:05:41 2015 - All SSH connection tests passed successfully. Thu Jan 8 18:05:41 2015 - Checking MHA Node version.. Thu Jan 8 18:05:42 2015 - Version check ok. Thu Jan 8 18:05:42 2015 - Checking SSH publickey authentication settings on the current master.. Thu Jan 8 18:05:42 2015 - HealthCheck: SSH to 192.168.1.2 is reachable. Thu Jan 8 18:05:42 2015 - Master MHA Node version is 0.54. Thu Jan 8 18:05:42 2015 - Checking recovery script configurations on the current master.. Thu Jan 8 18:05:42 2015 - Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/var/mysql/log --output_file=/usr/local/mha/save_binary_logs_test --manager_version=0.55 --start_file=mysql-bin.000002 Thu Jan 8 18:05:42 2015 - Connecting to root@192.168.1.2(192.168.1.2).. Creating /usr/local/mha if not exists.. ok. Checking output directory is accessible or not.. ok. Binlog found at /var/mysql/log, up to mysql-bin.000002 Thu Jan 8 18:05:42 2015 - Master
没有评论:
发表评论