1#ifndef _LIBBACKUP_H_ 2#define _LIBBACKUP_H_ 3 4#include "constant.h" 5 6#define MAX_JOB_NAME_LEN 20 7#define MAX_FS_NAME_LEN 20 8#define MAX_FD_NAME_LEN 255 9#define MAX_AMPM_LEN 2 10#define MAX_JOB_NUM 5 11#define BACKUP_CONF "/etc/backup_sh.conf" 12#define DS_CONF "/etc/CGI_ds.conf" 13 14#define BACKUP_CMD "/usr/sbin/backup" 15 16 17#define DIRECTION_N2F 0 18#define DIRECTION_F2N 1 19 20#define ACTION_COPY 1 21#define ACTION_UPDATE 2 22#define ACTION_SYNC 3 23 24/***** 25 26[job_name] 27//job_owner= //owner of the job 28job_mode= //1,2,3 1-copy,2-update,3,sync 29direction= //0:NAS->FILE SERVER 1:FILE SERVER->NAS. 30s_share= //a share name 31d_fs= //dest file server 32d_username= //user name 33d_userpass= //user password 34d_folder= //dest share/floder 35schl_en= //0,1 0-disable,1-enable 36// when schl_en=1 37* schl_day= //1,2,3,4,5,6.7,8(weekdays),9(every day...) 38* schl_hour= //1-12 39* schl_min= //0-59 40* schl_ampm= //am/pm 41// 42*******/ 43 44//#define JOB_OWNER "job_owner" 45#define JOB_MODE "job_mode" 46#define JOB_DIRECTION "job_direction" 47#define JOB_S_SHARE "s_share" 48#define JOB_SH_FOLDER "sh_folder" 49#define JOB_D_FS "d_fs" 50#define JOB_D_AUTH "d_auth" 51#define JOB_D_USERNAME "d_username" 52#define JOB_D_USERPASS "d_userpass" 53#define JOB_FOLDER "d_folder" 54#define JOB_SCHL_EN "schl_en" 55 56#define JOB_SCHL_DAY "schl_day" 57#define JOB_SCHL_HOUR "schl_hour" 58#define JOB_SCHL_MIN "schl_min" 59#define JOB_SCHL_AMPM "schl_ampm" 60 61 62typedef struct sh_backup 63{ 64 char job_name[MAX_JOB_NAME_LEN+1]; 65// char job_owner[FSH_MaxUserLen+1]; 66 int job_mode; 67 int job_direction; 68 char s_share[FSH_MaxShareLen+1]; 69 char sh_folder[MAX_FD_NAME_LEN+1]; 70 char d_fs[MAX_FS_NAME_LEN+1]; 71 int auth; 72 char d_username[FSH_MaxUserLen+1]; 73 char d_userpass[FSH_MaxPassLen+1]; 74 char d_folder[MAX_FD_NAME_LEN+1]; 75 int schl_en; 76 77 int schl_day; 78 int schl_hour; 79 int schl_min; 80 char schl_ampm[MAX_AMPM_LEN+1]; 81 82 struct sh_backup *next; 83}sh_backup; 84 85typedef struct backup_info 86{ 87 char job_name[MAX_JOB_NAME_LEN+1]; 88 int job_mode; 89 int job_direction; 90 char s_share[FSH_MaxShareLen+1]; 91 char sh_folder[MAX_FD_NAME_LEN+1]; 92 char d_fs[MAX_FS_NAME_LEN+1]; 93 int auth; 94 char d_username[FSH_MaxUserLen+1]; 95 char d_userpass[FSH_MaxPassLen+1]; 96 char d_folder[MAX_FD_NAME_LEN+1]; 97}backup_info; 98 99int GetBackupList(sh_backup **,int *); 100int GetBackupInfo(backup_info *pInfo); 101int AddABackup(sh_backup *); 102int UpdateABackup(char *,sh_backup *); 103int DelABackup(char *); 104int NumOfBackupJobs(void); 105char *transf(char *path,char flag); 106int DoBackup(char *); 107 108void FreeBackupList(sh_backup *); 109 110int IsBackupExist(char *); 111int IsShareBackuping(char *pShare); 112int IsBackupDoing(char *pName); 113int SchlAddBackup(sh_backup *pBackup); 114int SchlDelBackup(char *job_name); 115#define WINDOW_MODE 1 116#define LINUX_MODE 0 117int InternalJob(char *pServer) 118; 119char *transf(char *path,char flag); 120 121#define ERR_OPENFILE 1 122#define ERR_READFILE 2 123 124#define ERR_MEMALLOC 3 125#define ERR_EXIST 4 126#define ERR_NOT_EXIST 5 127 128#define ERR_JOB_MODE 6 129#define ERR_JOB_SCHL 7 130#define ERR_JOB_PATH 8 131#define ERR_JOB_DAY 9 132#define ERR_JOB_HOUR 10 133#define ERR_JOB_MIN 11 134#define ERR_JOB_AMPM 12 135 136#define ERR_WRITEFILE 13 137#define ERR_MAX_JOB 14 138#define ERR_JOB_NAME 15 139#define ERR_LOOP 16 140#define ERR_JOB_JOBNAME 17 141#define ERR_JOB_HOSTNAME 18 142#define ERR_JOB_USERNAME 19 143 144#define ERR_JOB_BUSY 20 145#define ERR_FULL_SCHL 21 146#define ERR_DUP_SERVER 22 147#define ERR_SH_FOLDER 23 148#define ERR_DUP_FOLDER 24 149#define ERR_JOB_DIRECTION 25 150#define ERR_SRC_DEST_LOOP 26 151#endif 152