📄 rm_dir.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 + -