去年給公司寫了一個配置服務器,目的是解決運維的工作量太大,而且傳送服務器需要的配置文件需要腳本傳送到各個服(每個服ip不一樣,需要scp),然后再刷新通知各個GameServer,中間有沒有傳送失敗并不得知,而且維護相當麻煩,所以我寫了這個服務器,所有區服的配置都在這里邊,不同的區服通過編號創建不同的目錄,在對應目錄下放服務器的配置,架構我就不說了,有興趣的可以私聊。
運行了很久了,突然遇到一個bug,不同的配置服務器發送的文件順序是不一樣。當初是配置名不能要求一樣的,但是QA不小心在1服的etc下放了A配置,又在etc下的activities目錄里又放了A配置,并且當初是用文件名作為主鍵,而不是絕對路徑。因此會出現個別配置服務器跟新到的是etc下的A配置,有些更新到的是etc下activities的A配置,
#include <iostream>
#include <string>
using namespace std;
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <dirent.h>void search(string commonXmlPath){
{string ectPath = commonXmlPath;string subDistrictXmlPath;DIR* dir_pointer