Базы данных - ЛИНТЕР - статьи

new name for old file


############################################################## /*--------------------------------------------------------*/ Variables: USERNAME ="SYSTEM"; /* user name */ USERPASSWORD ="MANAGER"; /* user password */ ARCDEVICE ="./"; /* for new files */ ARCFNAME =""; /* new name for old file */ CHKSUF = ".lhb"; /* suffix for checkpoint file */ NUMFILE = 1; /*--------------------------------------------------------*/
Rights: Everyday ( time = '02:00' ) { NUMFILE = 1; while ( NUMFILE < 5 ) { if ( exist ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" ) ) { if ( NUMFILE == 1 ) delete ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" );
else rename ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" , ARCDEVICE+"arc" + TOSTR(NUMFILE-1) + ".lhb" );
} /* if */ NUMFILE = NUMFILE + 1; } /* while */ rename ( ARCDEVICE+"db.lhb" , ARCDEVICE+"arc" + TOSTR(NUMFILE-1) + ".lhb" );
backup ( "s -u "+USERNAME+"/"+USERPASSWORD+" -f "+ARCDEVICE+"db.lhb"+" -qc DF" );
logprint ( CTIMESTAMP() + " --- File " + "db" + CHKSUF + " created.\n" );
Exception: /* for everyday */ print ( "Error=" + TOSTR(CERROR) + " , LinError=" + TOSTR(LINERROR) + " , SysError=" + TOSTR(SYSERROR) );
logprint ( CTIMESTAMP() + " --- Error=" + TOSTR(CERROR) + " , LinError=" + TOSTR(LINERROR) + " , SysError=" + TOSTR(SYSERROR) );
stop; } /* Everyday */ /*--------------------------------------------------------*/
Special: before /* just after the start */ { NUMFILE = 1; while ( NUMFILE < 5 ) { if ( exist ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" ) ) { if ( NUMFILE == 1 ) delete ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" );
else rename ( ARCDEVICE+"arc" + TOSTR(NUMFILE) + ".lhb" , ARCDEVICE+"arc" + TOSTR(NUMFILE-1) + ".lhb" );
} /* if */ NUMFILE = NUMFILE + 1; } /* while */ rename ( ARCDEVICE+"db.lhb" , ARCDEVICE+"arc" + TOSTR(NUMFILE-1) + ".lhb" );
backup ( "s -u "+USERNAME+"/"+USERPASSWORD+" -f "+ARCDEVICE+"db.lhb"+" -qc DF" );
logprint ( CTIMESTAMP() + " --- File " + "db" + CHKSUF + " created.\n" );
} after /* after stop or Ctrl-C */ { print ( " --- Stop backup system" );
if ( CERROR != 0 ) logprint ( CTIMESTAMP() + " --- Error present: " + TOSTR(CERROR) );
logprint ( CTIMESTAMP() + " --- Stop backup system\n" );
} iferr /* global */ { print ( "Error=" + TOSTR(CERROR) + " , LinError=" + TOSTR(LINERROR) + " , SysError=" + TOSTR(SYSERROR) );
logprint ( CTIMESTAMP() + " --- Error=" + TOSTR(CERROR) + " , LinError=" + TOSTR(LINERROR) + " , SysError=" + TOSTR(SYSERROR) );
stop; }
/*--------------------------------------------------------*/ ###############################################################
Следующий пример включает в себя более сложную схему – с инкрементированием. Программа сохраняет базу данных при запуске, и затем каждый день в 02:00 добавляет накопленные изменения. Если при запуске lhb задать ключ -fl FILE.LOG, то история сохранения будет накапливаться в файле FILE.LOG

Содержание раздела