前言
截止到目前为止,自己折腾php项目一直辅助使用某面板的webhook工具
利用这个工具直接执行shell来达到自动部署项目的目的
毕竟我懒,不想在本机折腾开发环境
其实最主要目的还是想要随时随地的可以更新生产环境同时达到版本控制的目的
当前的情况下,webhook工具每次执行都会产生执行日志记录到单个文件中
因为文件读写使用了面板集成的基础函数,所以懒得去看那么多了
现在会产生日志过多读取过慢的情况
通常一个大点的日志文件能达到2m左右(纯文本)
单次读取还是挺费劲的~
于是打算修改一下webhook工具以达到缩减日志的目的
由于我每次只需要看最新的日志,所以历史日志都是可以丢弃的
#运行Shell def RunShell(self,get): data = self.GetList(get); for i in range(len(data)): if data[i]['access_key'] == get.access_key: shellFile = self.__setupPath + '/script/' + get.access_key param = ''; if hasattr(get,'param'): param = get.param; os.system("bash " + shellFile + ' "'+param+'" ' + ' >> ' + shellFile + '.log &')//执行shell并写入日志 data[i]['count'] +=1; data[i]['uptime'] = int(time.time()); jsonFile = self.__setupPath + '/list.json'; public.writeFile(jsonFile,json.dumps(data)) return public.returnMsg(True,'运行成功!'); return public.returnMsg(False,'指定Hook不存在!');
代码里我们可以看到,日志的写入不是由webhook工具完成的
而是由shell命令来完成的
这里我们把'>>'修改为'>'就可以达到我的目的了
正文
Linux中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即可进入操作。
大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入
>> 是追加内容
> 是覆盖原有内容
< 则是将后面的文件内容追加到命令行中