使用C和Shell达成远程Tomcat的重启备份脚本
发布时间:2021-11-21 20:34:30 所属栏目:教程 来源:互联网
导读:使用C和Shell实现远程Tomcat的重启备份脚本 下面是客户端程序 #include stdio.h #include stdlib.h #include errno.h #include string.h #include sys/types.h #include netinet/in.h #include sys/socket.h #include sys/wait.h #define SERVPORT 6666 #def
使用C和Shell实现远程Tomcat的重启备份脚本 下面是客户端程序 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/wait.h> #define SERVPORT 6666 #define MAXDATASIZE 1024 #define SERVER_IP "10.10.10.158" int main(int argc, char* argv[]) { int sockfd, recvbytes; char buf[MAXDATASIZE]; struct hostent *host; char buffer[MAXDATASIZE]; struct sockaddr_in serv_addr; char name[100]; printf("请输入要操作的tomcat路径n"); scanf("%s",&name); while(1){ bzero(buffer, MAXDATASIZE); if (( sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket error!"); exit(1); } bzero(&serv_addr,sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(SERVPORT); serv_addr.sin_addr.s_addr= inet_addr(SERVER_IP); if (connect(sockfd, (struct sockaddr *)&serv_addr,sizeof(struct sockaddr)) == -1) { perror("connect error!"); exit(1); } printf("请输入要执行的命令:n"); scanf("%s",&buf); if(strcmp(buf,"close")==0){ close(sockfd); return 0; } strcat(buffer,name); strcat(buffer," "); strcat(buffer,buf); write(sockfd,buffer, sizeof(buffer)); if ((recvbytes = recv(sockfd, buf, MAXDATASIZE,0)) == -1) { perror("recv error!"); exit(1); } buf[recvbytes] = ' |