9.24 早上9:30左右,服务器无法连接。联系机房重启无效,最后说是网卡灯不亮。然后公司里面的很多同事度过了轻松愉快的一天(邮箱服务器挂调、svn服务器挂调、测试服务器挂掉。。。真不知道到底有多少虚拟主机挂掉)。
然后从10点左右我就开始忙活起来了,给我的任务是在另外一台服务器上恢复公司的邮件服务器,然后结果是邮件服务器配置的只能收不能发(之前没有过配置经验)。。。,有个认证一直无法配置通过||==,一天12个小时这样过去了,对了,下班前领导给我安排了一项沉重的任务,去北京搬服务器,我让他把路线图发给我,然后他给了我一个百度地图的链接
9.25 早上6:00 我一般起床都很早,6点起床,收拾东西,7点走出家门去火车站,本想着正好能赶在开着前十几分钟到没啥问题,结果火车晚点了,一天就这样被吞噬了一个小时零三分,突然想起来技术总监让我在路上想想新服务器要什么配置然后让我告诉老板,我发现我这是一站式服务(只要是涉及到花钱的事情我都不太愿意去和老板说,不过每次新添加服务器或升级配置上司都是让我去和老板直接说,好吧,就多锻炼锻炼沟通能力)。到了北京站,2号线倒6号线,到终点坐公交(奇葩的技术总监给我的公交卡原来只有4毛钱,4毛啊。。。坐了地铁后直接就欠费了)赶到了八里桥,到了八里桥终于体验到了百度的神奇——“众里寻他千百度”,也不能说是“千百度”吧,我没那么大毅力来回走个千百回,最后在机房工作人员的电话指引下我才知道我原来在上演真实版的南辕北辙,相信百度,定能还您一个强壮的体魄。
不管怎么着,我到达了目的地,然后我看到这个公司机房管理的还真是不严格,我还以为只要是进idc机房就一定要除尘去静电什么的呢,我把服务器拿下来的是否发现手上全是灰,看着像机油(还好可以很轻松的洗掉),完全不是我想象中机房的样子。再然后我就把服务器拆了(不拆的话拿着真的很麻烦,服务器的机箱是扁平式的,轻的话还好说,重了就要两只手去搬着了,即使搬也不是那么方便,所以我就把主板、电源、硬盘全给卸掉装背包了),再然后去吃午饭,此时已经三点多了,吃饭前领导打电话问我顺利不,我说还好,然后他就要给我买7点的票,最后竟然罕见的给我买了张高铁票,管他为啥呢(只所以这么说是因为因公出差公司只报一个硬座的票价(#‵′)凸),坐呗,上火车前还不忘买个麦当劳套餐,这是晚餐。
下面的配置是我在恢复公司svn服务器时apache的配置,其中用到了https,数据库验证
/etc/httpd/conf.d/ssl.conf
apache中subversion配置/etc/httpd/conf.d/subversion.conf
1 LoadModule dav_svn_module modules/mod_dav_svn.so 2 LoadModule authz_svn_module modules/mod_authz_svn.so 3 4 # 5 # Example configuration to enable HTTP access for a directory 6 # containing Subversion repositories, "/var/www/svn". Each repository 7 # must be both: 8 # 9 # a) readable and writable by the 'apache' user, and 10 # b) labelled with the 'httpd_sys_content_t' context if using 11 # SELinux 12 # 13 14 # 15 # To create a new repository "http://localhost/repos/stuff" using 16 # this configuration, run as root: 17 # 18 # # cd /var/www/svn 19 # # svnadmin create stuff 20 # # chown -R apache.apache stuff 21 # # chcon -R -t httpd_sys_content_t stuff 22 # 23 24 <Location /> 25 DAV svn 26 SVNParentPath /data/svn 27 # 28 # # Limit write permission to list of valid users. 29 # <LimitExcept GET PROPFIND OPTIONS REPORT> 30 # # Require SSL connection for password protection. 31 SSLRequireSSL 32 # 33 AuthType Basic 34 AuthName "MySQL Auth" 35 36 Require valid-user 37 #开启mysql验证 38 AuthMySQLEnable on 39 #加密方法 40 AuthMySQLPwEncryption md5 41 #是否开启只用mysql进行验证 42 AuthMySQLAuthoritative off 43 #mysql地址 44 AuthMySQLHost 127.0.0.1 45 #mysql用户 46 AuthMySQLUser svn_db 47 #mysql密码 48 AuthMySQLPassword svn_passwd 49 #mysql数据库 50 AuthMySQLDB svn_db 51 #用户表 52 AuthMySQLUserTable user 53 #用户名字的字段 54 AuthMySQLNameField name 55 #用户密码字段 56 AuthMySQLPasswordField passwd 57 #组表 58 AuthMySQLGroupTable group 59 #组字段 60 AuthMySQLGroupField user_group 61 AuthName "Authorization Realm" 62 # AuthUserFile /etc/subversion/passwd 63 #权限控制文件 64 AuthzSVNAccessFile /etc/subversion/authz 65 # </LimitExcept> 66 </Location>
服务器配置好之后还没完,因为还有几十G的svn数据需要传到线上,如果是从一个服务器到另一个服务器还好说,因为走的大都是骨干网络而且带宽没那么大水分,可是服务器挂掉了,svn没有其它服务器上的备份,然后就只能用小水管慢慢的传了。技术总监想让我在公司传完,公司的宽带上传速度真的是不忍直视,40k/s上传几十G的文件这不是开玩笑吗。下班后就回去了,不过回去了还要处理公司邮箱的问题,购买的新服务器计划使用postfix搭建mail服务。还没到家技术总监就给我打电话让我当天晚上务必把svn的服务器给恢复(包括数据上传),回到住处打开QQ才发现原来技术总监直接给老板说让我当天晚上必须把服务器给恢复,我的一晚上就这样被“卖”了。说下我的同步方法:
向服务器同步数据我一般使用rsync命令,一般使用如下格式
# -av参数可以使其在同步时不忽略文件夹
rsync -avz --exclude=do_not_sync_file /path/to/source/dir USER@host:/path/to/dest/dir
有时我会加上"--progress"参数来显示当前的上传进度,里面会包含上传速度和剩余需要上传的文件数量。