<?php if (jeedom::getHardwareName() == 'Jeedomboard' && jeedom::isCapable('sudo')) { echo '**************Mise à jour du système (peut etre très long)**************'; echo shell_exec('sudo touch /var/log/auth.log'); echo 'Mise à jour des sources'; echo shell_exec('sudo apt-get update'); echo "OK\n"; echo 'Mise à jour des paquets'; echo shell_exec('sudo apt-get dist-upgrade'); echo "OK\n"; echo 'Redemarrage fail2ban'; echo shell_exec('sudo service fail2ban restart'); echo "OK\n"; }
$cron->save(); $cron = cron::byClassAndFunction('plugin', 'cron30'); if (!is_object($cron)) { echo "Création de plugin::cron30\n"; $cron = new cron(); } $cron->setClass('plugin'); $cron->setFunction('cron30'); $cron->setSchedule('*/30 * * * * *'); $cron->setTimeout(60); $cron->save(); $dynamic_apache_path = dirname(__FILE__) . '/../core/config/apache_jeedom_dynamic_rules'; if (!file_exists($dynamic_apache_path)) { touch($dynamic_apache_path); } if (jeedom::isCapable('sudo')) { if (!file_exists('/var/log/auth.log')) { exec('sudo touch /var/log/auth.log'); exec('sudo service fail2ban restart'); } exec('sudo service cron restart'); } cache::deleteBySearch('widgetHtml'); cache::deleteBySearch('cmdWidgetdashboard'); cache::deleteBySearch('cmdWidgetmobile'); cache::deleteBySearch('scenarioHtmldashboard'); config::save('hardware_name', ''); } catch (Exception $e) { echo "Error : "; echo $e->getMessage(); }
public static function cron() { if (config::byKey('market::allowDNS') == 1 && !network::test('external', false, 120)) { network::dns_start(); } if (config::byKey('network::disableMangement') == 1) { return; } if (!jeedom::isCapable('sudo')) { return; } try { $gws = self::checkGw(); if (count($gws) == 0) { log::add('network', 'error', __('Aucune interface réseau trouvée, je redemarre tous les réseaux', __FILE__)); exec('sudo service networking restart'); return; } foreach ($gws as $iface => $gw) { if ($gw['ping'] != 'ok') { if (strpos($iface, 'tun') !== false) { continue; } if (strpos($iface, 'br0') !== false) { continue; } log::add('network', 'error', __('La passerelle distante de l\'interface ', __FILE__) . $iface . __(' est injoignable, je la redemarre pour essayer de corriger', __FILE__)); exec('sudo ifdown ' . $iface); sleep(5); exec('sudo ifup --force ' . $iface); } } } catch (Exception $e) { } }
public static function updateSystem() { if (config::byKey('update::autoSystem') == 1 && jeedom::isCapable('systemUpdate') && jeedom::isCapable('sudo')) { $output = array(); $return_val = -1; log::remove('system_update'); exec('sudo apt-get -y update >> ' . log::getPathToLog('system_update') . ' 2>&1', $output, $return_val); if ($return_val != 0) { log::add('update', 'error', __('Echec de la mise à jour des dépot, veuillez consulter la log system_update', __FILE__)); return; } exec('sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" dist-upgrade >> ' . log::getPathToLog('system_update') . ' 2>&1', $output, $return_val); if ($return_val != 0) { log::add('update', 'error', __('Echec de la mise à jour des paquets, veuillez consulter la log system_update', __FILE__)); return; } exec('sudo apt-get -y autoremove >> ' . log::getPathToLog('system_update') . ' 2>&1', $output, $return_val); if ($return_val != 0) { log::add('update', 'error', __('Echec su nettoyage des paquets, veuillez consulter la log system_update', __FILE__)); return; } exec('sudo service cron restart'); } }
</div> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <legend>{{Gestion avancée}}</legend> <div class="form-group expertModeVisible has-error"> <label class="col-xs-4 control-label">{{Désactiver la gestion du réseaux par Jeedom}}</label> <div class="col-xs-8"> <input type="checkbox" class="configKey bootstrapSwitch" data-l1key="network::disableMangement" /> </div> </div> <?php if (!jeedom::isCapable('wifi') || !jeedom::isCapable('ipfix')) { echo '<div class="alert alert-warning">{{Fonctionalité non disponible sur votre système}}</div>'; } else { if (!network::canManageNetwork()) { echo '<div class="alert alert-warning">{{Jeedom ne peut gérer le réseau veuillez vérifier si}} : <br/>'; echo '- {{ifenslave n\'est pas installé, pour l\'installer, faire en ssh : sudo apt-get install ifenslave-2.6}} <br/>'; echo '- {{le module bonding n\'est pas chargé, en ssh regarder si il y a bien "bonding" dans /etc/modules sinon l\'ajouter à la fin et redémarrer}}'; echo '</div>'; } else { ?> <div class="form-group"> <label class="col-xs-4 control-label">{{Adresse MAC}}</label> <div class="col-xs-8"> <span class="label label-default" style="font-size:1em;"><?php echo network::getMac('bond0'); ?>