walk-hoary

Archives pour la catégorie Aide mémoire

Split

Vous voulez découper le plus simplement possible un fichier ? Dans mon cas, il s’agit de fait passer un fichier de 16Go sur une partition FAT32.

Et bien utilisez juste split pour le découpage et cat pour l’assemblage :

split 2GB FichierADecouper.iso FichierDecoupe.part.
cat FichierDecoupe.part.* > FichierADecouper.iso

Ici split va découper le fichier FichierADecouper.iso en fichiers de 2Mo nommés FichierDecoupe.part.** où ** va de aa à zz. (Utilisé l’option -d pour avoir de 00 à 99).

Tags: , , ,

Utiliser un OS sans le démarrer

Il arrive parfois où l’on a besoin de booter sur un GNU/linux sans pouvoir le démarrer. (grub cassé, kernel panic, fichiers de boot blocants…)

Voici comment contourner ce problème si vous pouvez booter sur une autre distribution (même un live-cd). Dans la cas suivant sda1 est la partition boot et sda2 est la partition systeme du système que l’on souhaite utiliser.

  • mkdir /media/distribCassee
  • mount /dev/sda2 /media/distribCassee
  • mount /dev/sda1 /media/distribCassee/boot
  • mount -t proc /proc /media/distribCassee/proc
  • mount -o bind /dev /media/distribCassee/dev
  • mount -o bind /sys /media/distribCassee/sys
  • chroot /media/distribCassee

Et voilà ! Vous êtes dans votre système cassé. Vous pouvez lancer vos applications ou réparer ce que vous voulez.

Comme par exemple réinstaller le grub après l’installation d’un os monopilsateur :

install-grub /dev/sda

A noter que les points de montage /dev /boot et /proc ne sont pas toujours nécéssaires.

Monter une image ISO

Très simple :

mount -o loop /home/user/moniso.iso /mnt/cdrom

Tags:

Partage de connexion sous GNU/Linux

Voici un memo pour partager votre connexion internet sur votre PC.

Ici eth0 est l’interface accedant à internet, eth1 est l’interface du réseau local qui doit acceder à internet via eth0. On va utiliser l’ip forwarding, très simple…

Prérequis : Vous avez un serveur DHCP sur eth1 ou êtes déjà en ip statiques.

Activer l’ip forwarding

Prise en compte instantannée :

echo 1 > /proc/sys/net/ipv4/ip_forward

Pour que cela soit actif à chaque boot :

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Activez le partage

Prise en compte instantannée:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Pour que cela soit permanant :

echo "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" >> /etc/network/if-up.d/ip-forward
chmod 755 /etc/network/if-up.d/ip-forward

Voilà 😉

Tags: , ,

Synthèse d’information IPV4

Voici une synthèse d’informations sur l’adressage réseau qui peut être parfois utile lorsque l’on ne manipule pas assez. Cela concerne l’IPV4.

On associe sur une machine, une ip au masque qui sert à déterminer dans quelle plage cette dernière est placée. Exemple : ip 192.168.0.1 masque 255.255.255.0 (ou 192.168.0.1/24).

C’est dans le réseau 192.168.0.0 à 192.168.0.255 (où 192.168.0.0 est l’adresse réseau et 192.168.0.255 est l’adresse broadcast).

Pour comprendre les masques, vous pouvez vous des opérations logiques de façon plus visuel !

IP Décimale 192.168.0.1 = binaire 1100000.10101000.00000000.00000001

MASQUE décimale 255.255.255.0 = binaire 11111111.11111111.11111111.00000000 = /24 bits de poids forts à 1

Ici le masque autorise donc à communiquer en changeant les 8 derniers bits de l’IP. (8bits = 255 IP possibles)

Le masque détermine quels bits de l’IP peut changer, si vous ne laissiez seulement un 0 qu’à la fin du masque en binaire, cela vous ferait seulement 2 adresses possibles. ( Mais unitilisables puisques la premiere et la dernière seraient réservées au réseau et au broadcast).

Les classes de réseau

Les classes réseau sont des plages d’ip séparrant toute les adresses possibles en 5 parties, de la classe A à E.

Les classes A, B et C ont chacun dans leur plage d’ip, un plage d’ip privées qui ne sont jamais routées sur internet, et donc utilisables sur des réseaux locaux. Pour cela je vous renvoie à la page wikipedia.

Il faut juste retenir la plupart du temps les plages suivantes :

Plage privée de la classe A : 10.0.0.0 à 10.255.255.255

Plage privée de la classe B : 172.16.255.0 à 172.31.255.255

Plage privée de la classe C : 192.168.0.0 à 192.168.255.255

Plage de multicast de la classe D 224.0.0.0 à 239.255.255.255

Plage interne : 127.0.0.0 à 127.255.255.255 (Souvent utilisé pour locahost ou 127.0.0.1)

Tags: , , , ,

Crontab si facile !

Crontab

Cron est à GNU ce que at est à MS Windows, il s’agit du système de programmation des tâches de base fournit par l’OS.

Chaque utilisateur peut modifier ses propres tâches en tapant crontab -e. Les tâches exécutées sont bien évidement lancées sous l’utilisateur du cron.

La visualisation

crontab -l permet simplement de visualiser la liste des tâches pour l’utilisateur.

La purge

crontab -r permet vider les tâches de l’utilisateur.

L’édition

En tapant crontab -e , vous tomberez sur l’édition du fichier correspondant à votre cron. La syntaxe est assez simple.

Voici la première ligne que l’on peut trouver.
#m h dom mon dow command
nous pouvons par déduction découvrir sa signification.
m comme Minute
h comme Hour
dom comme Day Of Month
mon comme Month
dow comme Day Of Week (0 = dimanche)

Des exemples

Lancer une commande :

Tous les jours à 14h30
#m h dom mon dow command
30 14 * * * ~/commande.shTout les Lundi à minuit
#m h dom mon dow command
0 0 * * 1 ~/commande.sh

Tous les 1ers de chaque mois à minuit
#m h dom mon dow command
0 0 1 * * ~/commande.sh

Tous les 3 minutes
#m h dom mon dow command
*/3 0 * * * ~/commande.sh

A 6h et 18h
#m h dom mon dow command
* 6,18 * * * ~/commande.sh

Toutes les minutes de 19h à 20h le vendredi
#m h dom mon dow command
* 19-20 * * 5 ~/commande.sh

Allons plus loin

La présence du fichier /etc/cron.allow donnera la liste des utilisateurs autorisés à utiliser cron, dans le cas ou ce fichier n’existe pas, tout le monde peut y acceder. Le fichier /etc/cron.deny à l’inverse, interdira les utilisateurs souhaités.

Vous pouvez aussi utiliser les parametres spéciaux :

@reboot exécution au démarrage du système
@yearly exécution une fois par an (ou @annually)
@monthly exécution une fois par mois
@weekly exécution une fois par semaine
@daily exécution une fois par jour (ou @midnight)
@hourly execution une fois par heure

Envoyer la sortie standard vers une adresse email

~/commande.sh | mail -s « sujet du mail » email@dom.tld

Vous pouvez bien sûr utiliser la redirection standard et d’erreur dans votre commande.

Bonne programmation !

Tags: , ,

Je n'aime pas les boîtes noires.