-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreduceWtmp.pl
More file actions
46 lines (43 loc) · 1.13 KB
/
Copy pathreduceWtmp.pl
File metadata and controls
46 lines (43 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl
$logDir = "/var/adm";
chdir($logDir);
@logFiles = ("btmp", "btmps", "wtmp", "wtmps", "wtmpx");
$MAX_FILE_SIZE = 2000000;
$NUM_OF_LOGS = 10;
$NEW_FILE_SIZE = 0;
foreach $logFile (@logFiles)
{
if(-f $logFile)
{
open(FILE, $logFile) or die "Cant open $logFile (line 12): $!\n";
seek(FILE, 0, 2);
$size = tell(FILE);
close(FILE);
if($size >= $MAX_FILE_SIZE)
{
treatFile($logFile);
}
}
}
sub treatFile
{
if(-f "$logFile.$NUM_OF_LOGS")
{
unlink("$logFile.$NUM_OF_LOGS");
}
for ($i=$NUM_OF_LOGS-1;$i > 0;$i--)
{
if(-f "$logFile.$i")
{
$j = ($i + 1);
rename("$logFile.$i", "$logFile.$j");
}
}
if (-f $logFile)
{
system("cp $logFile $logFile.1");
}
open(FILE, "+<$logFile");
truncate(FILE, $NEW_FILE_SIZE);
close FILE;
}