2020 include_once ("./load_settings.php " );
2121}
2222
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+
2331echo "<pre> \n" ;
2432
25- DebMes ("Running maintenance script " );
33+ DebMes ("Running maintenance script " , ' maintenance ' );
2634
2735// BACKUP DATABASE AND FILES
2836
7078 $ path = ROOT . 'cms/debmes ' ;
7179}
7280
81+ DebMes ("Checking log files. " , 'maintenance ' );
7382$ dir = $ path . "/ " ;
74-
7583foreach (glob ($ dir . "* " ) as $ file ) {
7684 if (filemtime ($ file ) < time () - LOG_FILES_EXPIRE * 24 * 60 * 60 ) {
77- DebMes ("Removing log file " . $ file , 'backup ' );
85+ DebMes ("Removing log file " . $ file , 'maintenance ' );
7886 @unlink ($ file );
7987 }
8088}
8189
8290if ($ full_backup ) {
83- DebMes ("Backing up files... " , 'backup ' );
91+ DebMes ("Backing up files... " , 'maintenance ' );
8492 echo "Backing up files... " ;
8593
8694 if (!is_dir ($ target_dir . '/cms ' )) {
94102 $ d == 'debmes ' ||
95103 $ d == 'saverestore '
96104 ) 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 ' );
98106 copyTree (ROOT . 'cms/ ' . $ d , $ target_dir . '/cms/ ' . $ d , 1 );
99107 }
100108
112120 $ mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME ;
113121 $ mysqlDumpParam .= " > " . $ target_dir . "/ " . DB_NAME . ".sql " ;
114122
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 ' );
116124 exec ($ mysqlDumpPath . $ mysqlDumpParam );
117-
118-
125+ DebMes ("Backup done. " , 'maintenance ' );
119126 echo "OK \n" ;
120127}
121128
122129
123130// removing old files from cms/saverestore
131+ DebMes ("Checking cms/saverestore files. " , 'maintenance ' );
124132if (is_dir (ROOT . 'cms/saverestore ' )) {
125133 $ files = scandir (ROOT . 'cms/saverestore ' );
126134 foreach ($ files as $ file ) {
129137 && (preg_match ('/\.tgz$/ ' , $ file ) || preg_match ('/\.tar\.gz$/ ' , $ file ) || preg_match ('/\.zip\.gz$/ ' , $ file ))
130138 && filemtime ($ path ) < time () - BACKUP_FILES_EXPIRE * 24 * 60 * 60
131139 ) {
132- echonow ("Removing $ path " );
133- DebMes ("Removing $ path. " , 'backup ' );
140+ echo ("Removing $ path " );
141+ DebMes ("Removing $ path. " , 'maintenance ' );
134142 @unlink ($ path );
135143 }
136144 }
145+ } else {
146+ DebMes (ROOT . 'cms/saverestore - NOT FOUND ' , 'maintenance ' );
137147}
138148// removing old backus
149+ DebMes ('Checking old backups. ' , 'maintenance ' );
139150if (is_dir ($ backups_dir )) {
140151 $ backups = scandir ($ backups_dir );
141152 foreach ($ backups as $ file ) {
142153 if ($ file == '. ' || $ file == '.. ' ) continue ;
143154 $ path = $ backups_dir . '/ ' . $ file ;
144155 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 ' );
147158 removeTree ($ path );
148159 }
149160 }
150161 echo "OK " ;
151162} else {
163+ DebMes ($ backups_dir . ' - NOT FOUND ' , 'maintenance ' );
152164 echo $ backups_dir . " not found " ;
153165}
154166
155167
156168// CHECK/REPAIR/OPTIMIZE TABLES
169+ DebMes ('Checking database tables. ' , 'maintenance ' );
157170$ tables = SQLSelect ("SHOW TABLES FROM ` " . DB_NAME . "` " );
158171$ total = count ($ tables );
159172for ($ i = 0 ; $ i < $ total ; $ i ++) {
163176 echo "OK \n" ;
164177 } else {
165178 echo " broken ... repair ... " ;
179+ DebMes ("Repairing: $ table " , 'maintenance ' );
166180 SQLExec ("REPAIR TABLE " . $ table . "; " );
167181 echo "OK \n" ;
168182 }
169183}
170184
171185setGlobal ('ThisComputer.started_time ' , time ());
172186if (time () >= getGlobal ('ThisComputer.started_time ' )) {
187+ DebMes ("Incorrect date on start, fixing. " , 'maintenance ' );
173188 SQLExec ("DELETE FROM events WHERE ADDED > NOW() " );
174189 SQLExec ("DELETE FROM phistory WHERE ADDED > NOW() " );
175190 SQLExec ("DELETE FROM history WHERE ADDED > NOW() " );
180195
181196
182197// removing incorrect pvalues
198+ DebMes ("Checking for incorrect pvalues. " , 'maintenance ' );
183199$ 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 " ;
184200$ data = SQLSelect ($ sqlQuery );
185201$ total = count ($ data );
186202$ found_pvalues = array ();
187203for ($ i = 0 ; $ i < $ total ; $ i ++) {
188204 if (!$ data [$ i ]['PROP_ID ' ] || !$ data [$ i ]['OBJ_ID ' ]) {
189205 echo "Removing incorrect property value: " . $ data [$ i ]['PROPERTY_NAME ' ] . PHP_EOL ;
206+ DebMes ("Removing incorrect property value: " . $ data [$ i ]['PROPERTY_NAME ' ], 'maintenance ' );
190207 SQLExec ("DELETE FROM phistory WHERE VALUE_ID= " . $ data [$ i ]['ID ' ]);
191208 SQLExec ("DELETE FROM pvalues WHERE ID= " . $ data [$ i ]['ID ' ]);
192209 } else {
199216}
200217
201218// fixing property names
219+ DebMes ("Checking for incorrect property names. " , 'maintenance ' );
202220$ sqlQuery = "SELECT pvalues.*, objects.TITLE AS OBJECT_TITLE, properties.TITLE AS PROPERTY_TITLE
203221 FROM pvalues
204222 JOIN objects ON pvalues.OBJECT_ID = objects.id
210228
211229for ($ i = 0 ; $ i < $ total ; $ i ++) {
212230 $ objectProperty = $ data [$ i ]['OBJECT_TITLE ' ] . ". " . $ data [$ i ]['PROPERTY_TITLE ' ];
213- if ($ data [$ i ]['PROPERTY_NAME ' ])
231+ if ($ data [$ i ]['PROPERTY_NAME ' ]) {
214232 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 {
216235 echo "Missing: " . $ objectProperty . PHP_EOL ;
236+ DebMes ("Missing: " . $ objectProperty , 'maintenance ' );
237+ }
217238
218239 $ sqlQuery = "SELECT *
219240 FROM pvalues
227248}
228249
229250// Removing incorrect history for images
251+ DebMes ('Checking incorrect history images ' , 'maintenance ' );
230252$ folder = ROOT . 'cms/images/ ' ;
231253$ properties = SQLSelect ("SELECT * FROM properties WHERE DATA_TYPE=5 " );
232254$ total = count ($ properties );
262284 foreach ($ found_files as $ k => $ v ) {
263285 $ path = $ folder . $ k ;
264286 if (is_file ($ path )) {
287+ DebMes ('Removing ' . $ path , 'maintenance ' );
265288 echo "Removing $ path<br/> " ;
266289 unlink ($ path );
267290 }
270293
271294
272295// 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+
273298include_once (DIR_MODULES . 'classes/classes.class.php ' );
274299$ cls_module = new classes ();
275300
291316 }
292317 }
293318 if (isset ($ class_property ['ID ' ])) {
319+ DebMes ('Fixing ' . json_encode ($ properties [$ i ]), 'maintenance ' );
294320 $ object_pvalue = SQLSelectOne ("SELECT * FROM pvalues WHERE PROPERTY_ID= " . $ properties [$ i ]['ID ' ] . " AND OBJECT_ID= " . $ properties [$ i ]['OBJECT_ID ' ]);
295321 $ class_pvalue = SQLSelectOne ("SELECT * FROM pvalues WHERE PROPERTY_ID= " . $ class_property ['ID ' ] . " AND OBJECT_ID= " . $ properties [$ i ]['OBJECT_ID ' ]);
296322 if (!$ class_pvalue ['ID ' ]) {
310336
311337// removing old errors
312338if (defined ('SETTINGS_ERRORS_KEEP_HISTORY ' ) && SETTINGS_ERRORS_KEEP_HISTORY > 0 ) {
339+ DebMes ("Deleting old system_errors_data " , 'maintenance ' );
313340 SQLExec ("DELETE FROM system_errors_data WHERE ADDED<' " . date ('Y-m-d H:i:s ' , time () - SETTINGS_ERRORS_KEEP_HISTORY * 24 * 60 * 60 ) . "' " );
314341}
315342
324351}
325352
326353if ($ serial_data != '' ) {
354+ DebMes ("Setting serial to: " . $ serial_data , 'maintenance ' );
327355 sg ('ThisComputer.Serial ' , $ serial_data );
328356}
329357
330358
331359// caching some data
360+ DebMes ("Caching market data. " , 'maintenance ' );
332361include_once DIR_MODULES . 'market/market.class.php ' ;
333362$ mkt = new market ();
334363$ mkt ->marketRequest ('op=didyouknow ' );
337366include_once DIR_MODULES . 'saverestore/saverestore.class.php ' ;
338367$ sv = new saverestore ();
339368$ sv ->admin ($ out );
369+
370+ DebMes ("Maintenance complete. " , 'maintenance ' );
0 commit comments