用c++把自动新建、修改虚拟主机的shell重写了一下

 

以后想自己写个ubuntu下的虚拟主机管理系统,嘿嘿!目前已搞定了apache新建用户、删除用户、vsftp mysql管理。

C++代码
  1. #include <iostream>   
  2. #include <fstream>   
  3. #include <string>   
  4. #include<stdlib.h>   
  5.   
  6. using namespace std;   
  7. string stringReplace(const string& input,const string& find,const string& replaceWith)   
  8.   
  9. {   
  10.     string   strOut(input);   
  11.     int   curPos   =   0;   
  12.     int   pos;   
  13.     while((pos   =   strOut.find(find,   curPos))   !=   -1)   
  14.     {   
  15.         strOut.replace(pos,   find.size(),   replaceWith);   
  16.         curPos   =   pos   +   replaceWith.size();   
  17.     }   
  18.     return   strOut;   
  19. }   
  20.   
  21.   
  22.   
  23. int main(int argc,char *argv[])   
  24. {   
  25.         int i=3;   
  26.         cout<<argv[1]<<"|"<<argv[2]<<endl;   
  27.         if(argv[1]=="diyweb"){   
  28.                 cout<<"error,diyweb is system user"<<endl;   
  29.                 return 0;   
  30.         }   
  31.         if(argv[1]=="000-default"){   
  32.                 cout<<"error,000-default is system user"<<endl;   
  33.                 return 0;   
  34.         }   
  35.         //cin.get();   
  36.         string filename="/etc/apache2/sites-enabled/"+string(argv[1]);   
  37.   
  38.         ofstream f1(filename.c_str());   
  39.   
  40.         if(!f1){   
  41.                 cout<<"error,file not open!"<<endl;   
  42.                 return 0;   
  43.         }   
  44.         string doname=stringReplace(string(argv[2]),"@"," ");   
  45.         string content="<VirtualHost *:80>\nServerName "+string(argv[1])+".ye55.net \nServerAlias "+string(argv[1])+".armos.cn "+doname+" \nDocumentRoot \"/home/web/diyweb/company/"+string(argv[1])+"\"\n</VirtualHost>";   
  46.         f1<<content<<endl;   
  47.         f1.close();   
  48.         system("sudo /etc/init.d/apache2 reload >tmp.out");   
  49.         cout<<"success"<<endl;   
  50.         return 0;   
  51.   
  52. }