Billets comportant le tag linux
Billets comportant le tag linux
Si vous rencontrez l’erreur suivante “Sh/bin bad interpreter: No such file or directory” à l’exécution d’un script shell, c’est que le fichier est au format DOS au lieu du format UNIX.
Grâce à la commande od, qui permet de faire un dump au format octal, vous pouvez connaitre le format d’un fichier. Pour cela, il suffit d’exécuter la commande suivante :
head -1 monfichier.sh | od -c
Si en retour, en fin de ligne vous voyez \r \n c’est que votre fichier est au format DOS. Pour un fichier au format UNIX \r n’apparait pas.
Pour le convertir vous pouvez utiliser la commande dos2unix :
dos2unix mon-fichier
On peut également convertir un fichier directement depuis l’éditeur vim, grâce à la commande suivante :
:set ff=unix
Il peut être intéressant de modifier l’emplacement par défaut du répertoire contenant les bases de données et tables MySQL. Cela peut-être pour faciliter des sauvegardes ou encore bénéficier d’un espace disque plus important. La procédure est plutôt simple et rapide. Nous allons utiliser les liens symboliques. Dans cet exemple, le nouvelle emplacement du répertoire sera /home/mysql/ Voici la liste des commandes à exécuter :
/etc/init.d/mysql stop
mv /var/lib/mysql /home/
ln -s /home/mysql/ /var/lib/mysql
chown mysql:mysql /home/mysql
chmod 777 /home/mysql
/etc/init.d/mysql start
Pour plus de logique , on peut également modifier le fichier de configuration de MySQL, même si, grâce aux liens symboliques, cela n’est pas nécessaire. Dans /etc/mysql/my.cnf :
[mysqld]
datadir = /home/mysql
Grâce à find et l’option -ctime :
-ctime n : derniere modification du statut du fichier il y a n*24 heures.
Exemples :
Supprimer les fichiers modifiés il y a plus de 24 heures.
find . -ctime +1 -exec rm -f \{\} \;
Supprimer les fichiers modifiés il y a plus de 10 jours.
find . -ctime +10 -exec rm -f \{\} \;
Grâce à ntpdate
/usr/sbin/ntpdate cdns.ovh.net
Automatiser la mise à jour
Exemple, une fois par jour à 4h00
0 4 * * * root /usr/sbin/ntpdate cdns.ovh.net >/dev/null
Dans un fichier
sed -i 's/ancienne-chaine/nouvelle-chaine/g' fichier
Dans tous les fichiers d’un répertoire
find . -type f -exec sed -i 's/ancienne-chaine/nouvelle-chaine/g' {} \;
Dans une base MySQL
UPDATE table SET champ = replace(champ, 'ancienne-chaine', 'nouvelle-chaine');