进步一点点:给力的相对路径拷贝

进步一点点:给力的相对路径拷贝

 

游戏服务器运行后(操作系统为linux),会在某目录下生成log目录,在log目录下有login_loggameserver_logchar_logmap1_logmap2_logmap3_logmapn_log,每个log目录下有以逻辑服务器运行时的时间戳命名的日志文件,如2010-06-07-09-06-30.log,表示这个逻辑服务器是在201067日上午90630秒启动的,启动后输出的日志保存在这个文件中,直到该逻辑服务器进程结束。

 

因为log文件中记录了游戏帐号或角色的操作,对于程序员调试bug很有帮助,因此程序员常有获取当天游戏服务器的log文件的需求。

 

手工阶段

最初为了给程序员提供日志,在linux某个目录下创建一个临时目录:

$ mkdir ~/temp

再在临时目录下按游戏服务器log目录下各子目录的结构创建子目录:

$ cd ~/temp

$ mkdir login_log gameserver_log char_log map1_log map2_log … mapn_log

然后将程序员需求的游戏服务器log目录下各逻辑服务器的log文件复制到对应的目录中,假设程序员需求201067日服务器运行的log文件,则:

$ cp ~/server/log/login_log/2010-06-07*.log ~/temp/login_log/

$ cp ~/server/log/mapn_log/2010-06-07*.log ~/temp/mapn_log/

然后再将temp目录用scp拷贝至程序员的指定目录中。

 

脚本阶段

经历了这样几次需求后,觉得手动操作的有点多,于是将上述cp部分写成了shell脚本,并使用date +%Y%m%d命令生成当日日期,再创建出按当日日期命名的目录,每次执行shell脚本即可满足需求。

 

实际的游戏服务器运行过程中,map逻辑服务器常增加或删减,因此每当数量有变化时,需要手动地创建目标文件夹并修改脚本,也给工作带来了些不便。

 

给力的参数

有次无意间man cp,发现了cp有个给力的参数:

--parents

use full source file name under DIRECTORY

这个参数可以将文件的相对路径也拷贝过去,自动建立任何缺少的中间目录,如:

$ cp --parents server/log/login_log/2010-06-07*.log ~/20100607

~/20100607必须是一个已存在的目录,那么这个命令的结果是在~/abc/目录下创建server/log/login_log/目录,然后将2010-06-07*.log文件复制到该目录下。因此这个cp --parents命令可结合find命令实现上述多条命令的效果,而且无视逻辑服务器的增删。然后再使用scp将日志文件拷贝给程序员。

 

更加给力的参数

rsync

-R, --relative             

use relative path names

使用相对路径信息

rsync -R结合find命令,连scp命令都省略了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

signjing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值