mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
salvage-allow-hardlinked-logs-by-date-20030515
FIXES 1259 a switch causes salvager to create salvagelog hardlinks by date so logs are preserved forever
This commit is contained in:
parent
390083af2e
commit
5012151295
@ -398,6 +398,9 @@ char * ToString(char *s);
|
|||||||
void AskOffline(VolumeId volumeId);
|
void AskOffline(VolumeId volumeId);
|
||||||
void AskOnline(VolumeId volumeId, char *partition);
|
void AskOnline(VolumeId volumeId, char *partition);
|
||||||
void CheckLogFile(void);
|
void CheckLogFile(void);
|
||||||
|
#ifndef AFS_NT40_ENV
|
||||||
|
void TimeStampLogFile(void);
|
||||||
|
#endif
|
||||||
void ClearROInUseBit(struct VolumeSummary *summary);
|
void ClearROInUseBit(struct VolumeSummary *summary);
|
||||||
void CopyAndSalvage(register struct DirSummary *dir);
|
void CopyAndSalvage(register struct DirSummary *dir);
|
||||||
int CopyInode(Device device, Inode inode1, Inode inode2, int rwvolume);
|
int CopyInode(Device device, Inode inode1, Inode inode2, int rwvolume);
|
||||||
@ -580,18 +583,21 @@ static int handleit(struct cmd_syndesc *as)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef AFS_NT40_ENV /* ignore options on NT */
|
#ifndef AFS_NT40_ENV /* ignore options on NT */
|
||||||
if ( ti = as->parms[16].items) { /* -syslog */
|
if ( ti = as->parms[16].items) { /* -syslog */
|
||||||
useSyslog = 1;
|
useSyslog = 1;
|
||||||
ShowLog = 0;
|
ShowLog = 0;
|
||||||
}
|
}
|
||||||
if ( ti = as->parms[17].items) { /* -syslogfacility */
|
if ( ti = as->parms[17].items) { /* -syslogfacility */
|
||||||
useSyslogFacility = atoi(ti->data);
|
useSyslogFacility = atoi(ti->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ti = as->parms[18].items) { /* -datelogs */
|
||||||
|
TimeStampLogFile();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef FAST_RESTART
|
#ifdef FAST_RESTART
|
||||||
if (ti = as->parms[18].items) { /* -DontSalvage */
|
if (ti = as->parms[19].items) { /* -DontSalvage */
|
||||||
char *msg = "Exiting immediately without salvage. Look into the FileLog to find volumes which really need to be salvaged!";
|
char *msg = "Exiting immediately without salvage. Look into the FileLog to find volumes which really need to be salvaged!";
|
||||||
|
|
||||||
if ( useSyslog )
|
if ( useSyslog )
|
||||||
@ -772,6 +778,7 @@ int main(int argc, char **argv)
|
|||||||
to deal with screwy offsets for cmd params */
|
to deal with screwy offsets for cmd params */
|
||||||
cmd_AddParm(ts, "-syslog", CMD_FLAG, CMD_OPTIONAL, "Write salvage log to syslogs");
|
cmd_AddParm(ts, "-syslog", CMD_FLAG, CMD_OPTIONAL, "Write salvage log to syslogs");
|
||||||
cmd_AddParm(ts, "-syslogfacility", CMD_SINGLE, CMD_OPTIONAL, "Syslog facility number to use");
|
cmd_AddParm(ts, "-syslogfacility", CMD_SINGLE, CMD_OPTIONAL, "Syslog facility number to use");
|
||||||
|
cmd_AddParm(ts, "-datelogs", CMD_FLAG, CMD_OPTIONAL, "Include timestamp in logfile filename");
|
||||||
|
|
||||||
#ifdef FAST_RESTART
|
#ifdef FAST_RESTART
|
||||||
cmd_AddParm(ts, "-DontSalvage", CMD_FLAG, CMD_OPTIONAL, "Don't salvage. This my be set in BosConfig to let the fileserver restart immediately after a crash. Bad volumes will be taken offline");
|
cmd_AddParm(ts, "-DontSalvage", CMD_FLAG, CMD_OPTIONAL, "Don't salvage. This my be set in BosConfig to let the fileserver restart immediately after a crash. Bad volumes will be taken offline");
|
||||||
@ -3601,6 +3608,26 @@ void CheckLogFile(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef AFS_NT40_ENV
|
||||||
|
void TimeStampLogFile(void)
|
||||||
|
{
|
||||||
|
char stampSlvgLog[AFSDIR_PATH_MAX];
|
||||||
|
struct tm *lt;
|
||||||
|
time_t now;
|
||||||
|
|
||||||
|
now = time(0);
|
||||||
|
lt = localtime(&now);
|
||||||
|
sprintf(stampSlvgLog, "%s.%04d-%02d-%02d.%02d:%02d:%02d",
|
||||||
|
AFSDIR_SERVER_SLVGLOG_FILEPATH,
|
||||||
|
lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday,
|
||||||
|
lt->tm_hour, lt->tm_min, lt->tm_sec);
|
||||||
|
|
||||||
|
/* try to link the logfile to a timestamped filename */
|
||||||
|
/* if it fails, oh well, nothing we can do */
|
||||||
|
link(AFSDIR_SERVER_SLVGLOG_FILEPATH, stampSlvgLog);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void showlog(void)
|
void showlog(void)
|
||||||
{
|
{
|
||||||
char line[256];
|
char line[256];
|
||||||
|
Loading…
Reference in New Issue
Block a user