Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
ISPConfig 3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lolo888
ISPConfig 3
Commits
0061e0bc
Commit
0061e0bc
authored
May 01, 2010
by
vogelor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed a bug in clearing the syslog. This bug only appears at "low used" systems
parent
01d12057
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
2 deletions
+15
-2
server/cron_daily.php
server/cron_daily.php
+15
-2
No files found.
server/cron_daily.php
View file @
0061e0bc
...
...
@@ -231,19 +231,32 @@ if ($app->dbmaster == $app->db) {
* actually in the system (and will be insered in 3 days or so).
* 2) We have to keey ALL entries which are not actually precessed by the
* server never mind how old they are!
* 3) We have to keep the entry with the highest autoinc-id, because mysql calculates the
* autoinc-id as "new value = max(row) +1" and does not store this in a separate table.
* This means, if we delete to entry with the highest autoinc-value then this value is
* reused as autoinc and so there are more than one entries with the same value (over
* for example 4 Weeks). This is confusing for our system.
* ATTENTION 2) and 3) is in some case NOT the same! so we have to check both!
*/
/* First we need all servers and the last sys_datalog-id they processed */
$sql
=
"SELECT server_id, updated FROM server ORDER BY server_id"
;
$records
=
$app
->
dbmaster
->
queryAllRecords
(
$sql
);
/* Then we need the highest value ever */
$sql
=
"SELECT max(datalog_id) FROM sys_datalog"
;
$res
=
$app
->
dbmaster
->
queryOneRecord
(
$sql
);
$maxId
=
$res
[
'max(datalog_id)'
];
/* Then delete server by server */
foreach
(
$records
as
$server
)
{
$tmp_server_id
=
intval
(
$server
[
'server_id'
]);
if
(
$tmp_server_id
>
0
)
{
$sql
=
"DELETE FROM sys_datalog WHERE tstamp < "
.
$tstamp
.
$sql
=
"DELETE FROM sys_datalog "
.
"WHERE tstamp < "
.
$tstamp
.
" AND server_id = "
.
intval
(
$server
[
'server_id'
])
.
" AND datalog_id < "
.
intval
(
$server
[
'updated'
]);
" AND datalog_id < "
.
intval
(
$server
[
'updated'
])
.
" AND datalog_id < "
.
intval
(
$maxId
);
}
// echo $sql . "\n";
$app
->
dbmaster
->
query
(
$sql
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment