20
20
include_once ("./load_settings.php " );
21
21
}
22
22
23
+ if (isset ($ _SERVER ['REQUEST_URI ' ])) {
24
+ DebMes ("Running by URL: " . $ _SERVER ['REQUEST_URI ' ], 'maintenance ' );
25
+ } elseif (isset ($ argv [0 ])) {
26
+ DebMes ("Running from command line: " . implode (' ' , $ argv ), 'maintenance ' );
27
+ }
28
+
29
+ set_time_limit (10 * 60 );
30
+
23
31
echo "<pre> \n" ;
24
32
25
- DebMes ("Running maintenance script " );
33
+ DebMes ("Running maintenance script " , ' maintenance ' );
26
34
27
35
// BACKUP DATABASE AND FILES
28
36
70
78
$ path = ROOT . 'cms/debmes ' ;
71
79
}
72
80
81
+ DebMes ("Checking log files. " , 'maintenance ' );
73
82
$ dir = $ path . "/ " ;
74
-
75
83
foreach (glob ($ dir . "* " ) as $ file ) {
76
84
if (filemtime ($ file ) < time () - LOG_FILES_EXPIRE * 24 * 60 * 60 ) {
77
- DebMes ("Removing log file " . $ file , 'backup ' );
85
+ DebMes ("Removing log file " . $ file , 'maintenance ' );
78
86
@unlink ($ file );
79
87
}
80
88
}
81
89
82
90
if ($ full_backup ) {
83
- DebMes ("Backing up files... " , 'backup ' );
91
+ DebMes ("Backing up files... " , 'maintenance ' );
84
92
echo "Backing up files... " ;
85
93
86
94
if (!is_dir ($ target_dir . '/cms ' )) {
94
102
$ d == 'debmes ' ||
95
103
$ d == 'saverestore '
96
104
) continue ;
97
- DebMes ("Backing up dir " . ROOT . 'cms/ ' . $ d . ' to ' . $ target_dir . '/cms/ ' . $ d , 'backup ' );
105
+ DebMes ("Backing up dir " . ROOT . 'cms/ ' . $ d . ' to ' . $ target_dir . '/cms/ ' . $ d , 'maintenance ' );
98
106
copyTree (ROOT . 'cms/ ' . $ d , $ target_dir . '/cms/ ' . $ d , 1 );
99
107
}
100
108
112
120
$ mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME ;
113
121
$ mysqlDumpParam .= " > " . $ target_dir . "/ " . DB_NAME . ".sql " ;
114
122
115
- DebMes ("Backing up database " . DB_NAME . ' to ' . $ target_dir . "/ " . DB_NAME . ".sql " , 'backup ' );
123
+ DebMes ("Backing up database " . DB_NAME . ' to ' . $ target_dir . "/ " . DB_NAME . ".sql " , 'maintenance ' );
116
124
exec ($ mysqlDumpPath . $ mysqlDumpParam );
117
-
118
-
125
+ DebMes ("Backup done. " , 'maintenance ' );
119
126
echo "OK \n" ;
120
127
}
121
128
122
129
123
130
// removing old files from cms/saverestore
131
+ DebMes ("Checking cms/saverestore files. " , 'maintenance ' );
124
132
if (is_dir (ROOT . 'cms/saverestore ' )) {
125
133
$ files = scandir (ROOT . 'cms/saverestore ' );
126
134
foreach ($ files as $ file ) {
129
137
&& (preg_match ('/\.tgz$/ ' , $ file ) || preg_match ('/\.tar\.gz$/ ' , $ file ) || preg_match ('/\.zip\.gz$/ ' , $ file ))
130
138
&& filemtime ($ path ) < time () - BACKUP_FILES_EXPIRE * 24 * 60 * 60
131
139
) {
132
- echonow ("Removing $ path " );
133
- DebMes ("Removing $ path. " , 'backup ' );
140
+ echo ("Removing $ path " );
141
+ DebMes ("Removing $ path. " , 'maintenance ' );
134
142
@unlink ($ path );
135
143
}
136
144
}
145
+ } else {
146
+ DebMes (ROOT . 'cms/saverestore - NOT FOUND ' , 'maintenance ' );
137
147
}
138
148
// removing old backus
149
+ DebMes ('Checking old backups. ' , 'maintenance ' );
139
150
if (is_dir ($ backups_dir )) {
140
151
$ backups = scandir ($ backups_dir );
141
152
foreach ($ backups as $ file ) {
142
153
if ($ file == '. ' || $ file == '.. ' ) continue ;
143
154
$ path = $ backups_dir . '/ ' . $ file ;
144
155
if (is_dir ($ path ) && filemtime ($ path ) < time () - BACKUP_FILES_EXPIRE * 24 * 60 * 60 ) {
145
- echonow ("Removing $ path " );
146
- DebMes ("Removing $ path. " , 'backup ' );
156
+ echo ("Removing $ path " );
157
+ DebMes ("Removing $ path. " , 'maintenance ' );
147
158
removeTree ($ path );
148
159
}
149
160
}
150
161
echo "OK " ;
151
162
} else {
163
+ DebMes ($ backups_dir . ' - NOT FOUND ' , 'maintenance ' );
152
164
echo $ backups_dir . " not found " ;
153
165
}
154
166
155
167
156
168
// CHECK/REPAIR/OPTIMIZE TABLES
169
+ DebMes ('Checking database tables. ' , 'maintenance ' );
157
170
$ tables = SQLSelect ("SHOW TABLES FROM ` " . DB_NAME . "` " );
158
171
$ total = count ($ tables );
159
172
for ($ i = 0 ; $ i < $ total ; $ i ++) {
163
176
echo "OK \n" ;
164
177
} else {
165
178
echo " broken ... repair ... " ;
179
+ DebMes ("Repairing: $ table " , 'maintenance ' );
166
180
SQLExec ("REPAIR TABLE " . $ table . "; " );
167
181
echo "OK \n" ;
168
182
}
169
183
}
170
184
171
185
setGlobal ('ThisComputer.started_time ' , time ());
172
186
if (time () >= getGlobal ('ThisComputer.started_time ' )) {
187
+ DebMes ("Incorrect date on start, fixing. " , 'maintenance ' );
173
188
SQLExec ("DELETE FROM events WHERE ADDED > NOW() " );
174
189
SQLExec ("DELETE FROM phistory WHERE ADDED > NOW() " );
175
190
SQLExec ("DELETE FROM history WHERE ADDED > NOW() " );
180
195
181
196
182
197
// removing incorrect pvalues
198
+ DebMes ("Checking for incorrect pvalues. " , 'maintenance ' );
183
199
$ sqlQuery = "SELECT pvalues.*, properties.ID AS PROP_ID, objects.ID as OBJ_ID FROM `pvalues` LEFT JOIN properties ON pvalues.PROPERTY_ID=properties.ID LEFT JOIN objects ON pvalues.OBJECT_ID=objects.ID " ;
184
200
$ data = SQLSelect ($ sqlQuery );
185
201
$ total = count ($ data );
186
202
$ found_pvalues = array ();
187
203
for ($ i = 0 ; $ i < $ total ; $ i ++) {
188
204
if (!$ data [$ i ]['PROP_ID ' ] || !$ data [$ i ]['OBJ_ID ' ]) {
189
205
echo "Removing incorrect property value: " . $ data [$ i ]['PROPERTY_NAME ' ] . PHP_EOL ;
206
+ DebMes ("Removing incorrect property value: " . $ data [$ i ]['PROPERTY_NAME ' ], 'maintenance ' );
190
207
SQLExec ("DELETE FROM phistory WHERE VALUE_ID= " . $ data [$ i ]['ID ' ]);
191
208
SQLExec ("DELETE FROM pvalues WHERE ID= " . $ data [$ i ]['ID ' ]);
192
209
} else {
199
216
}
200
217
201
218
// fixing property names
219
+ DebMes ("Checking for incorrect property names. " , 'maintenance ' );
202
220
$ sqlQuery = "SELECT pvalues.*, objects.TITLE AS OBJECT_TITLE, properties.TITLE AS PROPERTY_TITLE
203
221
FROM pvalues
204
222
JOIN objects ON pvalues.OBJECT_ID = objects.id
210
228
211
229
for ($ i = 0 ; $ i < $ total ; $ i ++) {
212
230
$ objectProperty = $ data [$ i ]['OBJECT_TITLE ' ] . ". " . $ data [$ i ]['PROPERTY_TITLE ' ];
213
- if ($ data [$ i ]['PROPERTY_NAME ' ])
231
+ if ($ data [$ i ]['PROPERTY_NAME ' ]) {
214
232
echo "Incorrect: " . $ data [$ i ]['PROPERTY_NAME ' ] . " should be $ objectProperty " . PHP_EOL ;
215
- else
233
+ DebMes ("Incorrect: " . $ data [$ i ]['PROPERTY_NAME ' ] . " should be $ objectProperty " , 'maintenance ' );
234
+ } else {
216
235
echo "Missing: " . $ objectProperty . PHP_EOL ;
236
+ DebMes ("Missing: " . $ objectProperty , 'maintenance ' );
237
+ }
217
238
218
239
$ sqlQuery = "SELECT *
219
240
FROM pvalues
227
248
}
228
249
229
250
// Removing incorrect history for images
251
+ DebMes ('Checking incorrect history images ' , 'maintenance ' );
230
252
$ folder = ROOT . 'cms/images/ ' ;
231
253
$ properties = SQLSelect ("SELECT * FROM properties WHERE DATA_TYPE=5 " );
232
254
$ total = count ($ properties );
262
284
foreach ($ found_files as $ k => $ v ) {
263
285
$ path = $ folder . $ k ;
264
286
if (is_file ($ path )) {
287
+ DebMes ('Removing ' . $ path , 'maintenance ' );
265
288
echo "Removing $ path<br/> " ;
266
289
unlink ($ path );
267
290
}
270
293
271
294
272
295
// Removing duplicates when we have both class property and object property with the same name
296
+ DebMes ('Checking duplicates with both class property and object property. ' , 'maintenance ' );
297
+
273
298
include_once (DIR_MODULES . 'classes/classes.class.php ' );
274
299
$ cls_module = new classes ();
275
300
291
316
}
292
317
}
293
318
if (isset ($ class_property ['ID ' ])) {
319
+ DebMes ('Fixing ' . json_encode ($ properties [$ i ]), 'maintenance ' );
294
320
$ object_pvalue = SQLSelectOne ("SELECT * FROM pvalues WHERE PROPERTY_ID= " . $ properties [$ i ]['ID ' ] . " AND OBJECT_ID= " . $ properties [$ i ]['OBJECT_ID ' ]);
295
321
$ class_pvalue = SQLSelectOne ("SELECT * FROM pvalues WHERE PROPERTY_ID= " . $ class_property ['ID ' ] . " AND OBJECT_ID= " . $ properties [$ i ]['OBJECT_ID ' ]);
296
322
if (!$ class_pvalue ['ID ' ]) {
310
336
311
337
// removing old errors
312
338
if (defined ('SETTINGS_ERRORS_KEEP_HISTORY ' ) && SETTINGS_ERRORS_KEEP_HISTORY > 0 ) {
339
+ DebMes ("Deleting old system_errors_data " , 'maintenance ' );
313
340
SQLExec ("DELETE FROM system_errors_data WHERE ADDED<' " . date ('Y-m-d H:i:s ' , time () - SETTINGS_ERRORS_KEEP_HISTORY * 24 * 60 * 60 ) . "' " );
314
341
}
315
342
324
351
}
325
352
326
353
if ($ serial_data != '' ) {
354
+ DebMes ("Setting serial to: " . $ serial_data , 'maintenance ' );
327
355
sg ('ThisComputer.Serial ' , $ serial_data );
328
356
}
329
357
330
358
331
359
// caching some data
360
+ DebMes ("Caching market data. " , 'maintenance ' );
332
361
include_once DIR_MODULES . 'market/market.class.php ' ;
333
362
$ mkt = new market ();
334
363
$ mkt ->marketRequest ('op=didyouknow ' );
337
366
include_once DIR_MODULES . 'saverestore/saverestore.class.php ' ;
338
367
$ sv = new saverestore ();
339
368
$ sv ->admin ($ out );
369
+
370
+ DebMes ("Maintenance complete. " , 'maintenance ' );
0 commit comments