script php lancé sur création de fichier avec incron sur ubuntu 14.04

Objectif:
Créer un script php exécutant un traitement sur un fichier reçu dans un dossier. Dans mon cas, c’était pour l’intégration automatique de fichiers csv reçu par ftp dans une base de donnée.

Méthode utilisée: Incron

Incron:
Logiciel qui permet de planifier le lancement d’un programme ou d’un script sur un événement système (fichier créé ou modifié etc…)
Très utilise pour réaliser un process se déclenchant à la réception d’un fichier.
L’installation de Incron se fait apt-get install.
La seule chose déroutante c’est que par défaut l’utilisateur root lui-même est interdit et donc il faut l’autoriser.

Donc cela donne:

sudo apt-get install incron
sudo vi /etc/incron.allow

=> ajouter une ligne contenant juste
root
=> enregistrer & quitter

sudo incrontab -e

=> on arrive sur nano et l’on peu ajouter

/var/www/sentinelle/depot IN_CLOSE_WRITE /var/www/sentinelle/sentinelle.php "$#"

=> lors de la création d’un fichier dans /var/www/sentinelle/depot,  le script sentinelle.php sera lancé avec le nom du fichier en argument.
La commande:

sudo chmod +x /var/www/sentinelle/sentinelle.php

aura été préalablement lancé pour rendre le script « exécutable » depuis un shell.

exemple de contenu du script schellscript.php:

#!/usr/bin/php
<?php
// $arg[0] correspond au nom du script
// $arg[1] correspond au 1er parametre
// $arg[2] correspond au 2eme parametre etc...

// si le nombre de parametres est différent du nombre prévu ou que le 1er correspond 
// a une demande d'aide on affiche l'aide 
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Ce script traite le fichier reçu en argument.

  Utilisation :
  <?php echo $argv[0]; ?> <option>

  <option> doit être le nom de fichier.
  Avec les options --help, -help, -h,
  et -?, vous obtiendrez cette aide.

<?php
// sinon execute le traitement normal du script
} else {
    echo $argv[1]."\n";
}
?>

Note: Attention à ce que le texte du script soit au format linux (retour à la ligne par \n) car ce dernier n’aime pas les scripts comportant des retour à la ligne format Microsoft (\r\n).

reférences:

Un excellent tutorial d’INCRON: http://www.admin-linux.fr/?p=4840
Un autre: http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/
Un dernier: http://www.howtoforge.com/triggering-commands-on-file-or-directory-changes-with-incron

Historique et configuration du shell « bash » (interpreteur de commande)

bash étant l’interpréteur de commande le plus courant dans linux.

Dans le dossier de l’utilisateur, il existe deux fichiers important à connaitre:

tapez « ls -al » dans le dossier de l’utilisateur et certains fichiers apparaissent:

drwxr-xr-x 4 dominique dominique 4096 août 25 11:40 .
drwxr-xr-x 3 root root 4096 mai 3 17:40 ..
-rw------- 1 dominique dominique 4692 août 28 22:32 .bash_history
-rw-r--r-- 1 dominique dominique 220 mai 3 17:40 .bash_logout
-rw-r--r-- 1 dominique dominique 3486 mai 3 17:40 .bashrc
drwx------ 2 dominique dominique 4096 mai 3 17:42 .cache
-rw------- 1 dominique dominique 176 juil. 20 15:03 .mysql_history
-rw-r--r-- 1 dominique dominique 675 mai 3 17:40 .profile
drwxr-xr-x 2 root root 4096 août 25 11:39 .vim
-rw------- 1 root root 5785 août 25 11:40 .viminfo

il s’agit des fichiers « .bash_history » et « .bashrc »

.bash_history est la liste des dernières commandes saisies. Très utilise pour se souvenir de ce que l’on a lancé précédemment car il garde un historique conséquent.

.bashrc est le fichier de configuration de l’interpréteur.

Comme vous le voyez, il en existe d’autres, tel que l’historique des commande mysql (si vous l’utilisez) et autres.

Régénérer les fichiers de stratégie par défaut

Par exemple suite a l’effacement accidentel du dossier Policies ou un dommage sur l’un des fichiers contenu dedans…

J’ai eu l’occasion de voir a plusieurs reprises ce problèmes. Il en résulte un fonctionnement hasardeux du domaine (parce qu’il n’y a plus les réglages effectués par défaut), des centaines, voire des milliers de messages d’erreurs dans les événements… bref le chaos !!!

La meilleur action est la restauration mais malheureusement, beaucoup de PME ne sauvegardent que leurs documents… Donc si on ne dispose pas d’une sauvegarde suivre cette méthode:

1) s’assurer de l’arborescence (et recréer si besoin les dossiers manquants):

 C:\windows\SYSVOL
 C:\windows\SYSVOL\domain
 C:\windows \SYSVOL\staging\domain
 C:\windows \SYSVOL\staging areas
 C:\windows \SYSVOL\domain\Policies
 C:\windows \SYSVOL\domain\scripts
 C:\windows \SYSVOL\SYSVOL

Ensuite il faut recréer les liens symbolique existants avec la commande mklink:

 cd c:\windows\SYSVOL
 mklink /J votrenomdedomainefqdn c:\windows\SYSVOL\domain
 cd "staging areas"
 mklink /J votrenomdedomainefqdn c:\windows\SYSVOL\staging\domain

exemple si votre domaine s’appelle « reseau.local »:

 cd c:\windows\SYSVOL
 mklink /J reseau.local c:\windows\SYSVOL\domain
 cd "staging areas"
 mklink /J reseau.local c:\windows\SYSVOL\staging\domain

ce qui recréera les liens symboliques nécessaires.

Terminez par:

dcgpofix /ignoreschema

Les stratégies systèmes « default domain policies » et « default domain controlers policies » sont recrées.

Explication des valeurs de chmod pour les débutants

Valeur Niveau de permission

400 Lecture pour le propriétaire
200 Ecriture pour le propriétaire
100 Exécution pour le propriétaire
40 Lecture pour le groupe
20 Ecriture pour le groupe
10 Exécution pour le groupe
4 Lecture pour tous le monde
2 Ecriture pour tous le monde
1 Exécution pour tous le monde

Donc:

775 Lecture écriture, exécution pour le propriétaire, lecture, écriture, exécution pour le groupe, lecture exécution pour les autres
770 Lecture écriture, exécution pour le propriétaire, lecture, écriture, exécution pour le groupe, rien pour les autres
755 Lecture écriture, exécution pour le propriétaire, lecture, exécution, pour le groupe, lecture exécution pour les autres
777 Lecture, écriture, exécution pour tous le monde.

« Error in evaluating table display tls Error » sur liste des partages d’un nas Netgear

Le problème viens du navigateur Internet Explorer et non du nas.
Utilisez de préférence Chrome qui fonctionne parfaitement avec le materiel NETGEAR.

Windows Serveur 2012: Mettre à jour la version d’évaluation en version standard

Contrairement aux bêtises que j’ai lues sur le web, c’est tout à fait possible.
La ligne de commande est:

DISM /online /Set-Edition:ServerStandard /ProductKey:(votre clef de produit) /AcceptEULA

Récuperer le modèle et le numéro de série d’un ordinateur

Si par exemple lors d’une télémaintenance vous devez récupérer le numéro de série d’un ordinateur, pour faire appel au constructeur ou pour commandé une pièce détachée, il n’est pas toujours évident de demander au client de vous le dicter si vous ne l’avez pas sur la facture de vente. Il existe une façon de l’obtenir en commande msdos:

Pour le modèle:

wmic csproduct get name,vendor,identifyingNumber

Pour le numéro de série

wmic bios get serialnumber

Pour la liste des adresses mac (bien qu’on peu aussi les obtenir avec ipconfig /all)

wmic nic get macaddress,description