⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_dir.c

📁 一个服务器的硬盘备份程序,可以参考readme使用
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <dirent.h>#include <mysql.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#define D_PATH	"/home/nfs/video/"#define DB_HOSTNAME     "10.191.0.7"#define DB_USERNAME     "root"#define DB_PASSWORD     "root1234"#define DB_DATABASE     "xtdb"#define SQL_SIZE        1024int main(){	struct dirent *dir;	time_t ntime;	struct tm *p;	char time_buf[50]={0};	DIR *dp;	FILE *fd;	char tmpfile[32]="/tmp/rm_video.log";	char old_name[20]={0};	char name_buf[20];	char cmd[128];	char file_path[128];	int ij;		MYSQL *connection, mysql;        char sql[SQL_SIZE];	int  state = 0;		int count =0;	if (fork() != 0)		exit(0);	if (fork() != 0)		exit(0);	fd = fopen(tmpfile,"wr");	ntime = time(NULL)-3600*24*25;	p = localtime(&ntime);	strftime(time_buf,sizeof(time_buf),"%Y%m%d",p);	fprintf(fd,"time: %s\n",time_buf);		mysql_init(&mysql);		while (1) {		connection = mysql_real_connect(&mysql, DB_HOSTNAME, DB_USERNAME,DB_PASSWORD, DB_DATABASE, 0, 0, 0);		if (connection == NULL) {			fprintf(fd,"mysql connection error\n");			if (count == 5) {				fprintf(fd,"count %d\n",count);				return -1;			}			count++;			continue;		}else 			break;	}		while(1) {		if ((dp = opendir(D_PATH)) == NULL) {			fprintf(fd,"open rm_bak dir error");			continue;		} else 			break;	}			while((dir = readdir(dp)) != NULL) {		if (dir->d_ino==0)			continue;		if (strcmp(dir->d_name,".") == 0 || strcmp(dir->d_name,"..") == 0)			continue;		if (strcmp(dir->d_name,old_name) == 0)			continue;				memset(cmd,0,128);		memset(file_path,0,128);		memset(name_buf,0,20);		strcpy(name_buf,dir->d_name);		strcpy(old_name,dir->d_name);		strcpy(file_path,D_PATH);		strcat(file_path,name_buf);		if(atoi(name_buf) < atoi(time_buf)) {			sprintf(cmd,"/bin/rm %s %s ",file_path,"-rf");			fprintf(fd,"%s\n",cmd);			ij = system(cmd);			if (ij != 0)				continue;			bzero(sql,SQL_SIZE);			sprintf(sql,"delete from dvr_watch where start_time < FROM_UNIXTIME(%d)",ntime); 			state = mysql_query(connection,sql);			if (state != 0) {				fprintf(fd,"*********************sql %s\n",sql);				fprintf(fd,"ysql error:%s\n",mysql_error(connection));			}		}	}	if(!closedir(dp))		fprintf(fd,"has close dp\n");  	fclose(fd);			return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -