Richard Bruno
navigation
Home
admin









Divers
October 18th, 2016

Table des matières



- sed
- creation image fedora avec partimage
- Copier le MBR nécessaire au boot de windows
- Effacer un CD RW
- Créer un .iso à partir d'un DVD
- Graver un .iso
- Afficher la date des commandes dans l'historique
- Grub2
- Shell : envoyer des fichiers attachés par mail
- Faire des recherches sur google avec wget
- Runlevel
- Installer Rescue CD sur une clé USB
- tmpfs
- Divers


sed



Exemple 1 : Remplacement d'un caractère avec sed

printf "abcdef" | od -bc
0000000 141 142 143 144 145 146
a b c d e f
0000007



printf "abcdef" | sed 's/\o142/Y/'|od -bc
0000000 141 131 143 144 145 146
a Y c d e f
0000006



Exemple 2 : Remplacement d'un retour chariot

$ printf "abc\ndef" | od -bc
0000000 141 142 143 012 144 145 146
a b c \n d e f
0000007



$ printf "abc\ndef" | sed 's/o012/Y/'|od -bc
0000000 141 142 143 012 144 145 146
a b c \n d e f
0000007



Ca ne fonctionne pas...
Une solution :

$ printf "abc\ndef" | sed ':a;N;$!ba;s/\n//g' |od -bc
0000000 141 142 143 144 145 146
a b c d e f
0000006



Explications :
1. :a create a label 'a'
2. N append the next line to the pattern space
3. $! if not the last line, ba branch (go to) label 'a'
4. s substitute, /n/ regex for new line, / / by a space, /g global match (as many times as it can)

sed will loop through step 1 to 3 until it reach the last line, getting all lines fit in the pattern space where sed will substitute all n characters
Source : http://stackoverflow.com/questions/1251999/sed-how-can-i-replace-a-newline-n/1252191#1252191

Exemple 3 : Transformation d'un mail au format MIME en un fichier texte

awk '/Content-Transfer-Encoding: quoted-printable/,/--------------ms/ {if ($0 !~ "Content-Transfer-Encoding: quoted-printable" && $0 !~ "--------------ms") print $0}' fichier.emlx |sed -e "s/=3D/=/g" -e "s/=E9/é/g" -e "s/=E8/è/g" -e "s/=F4/ô/g" -e "s/=EA/ê/g" -e "s/=E0/à/g" -e "s/=92/\'/g" -e "s/=E7/ç/g" -e "s/=F9/ù/g" |sed ':a;N;$!ba;s/=\n//g'




Tables des caractères ascii
on en trouve partout sur le Net.
exemple : http://www.table-ascii.com/

creation image fedora avec partimage



1/ booter avec cd rescue
clavier : 16
(net-setup eth0 (normalement c'est automatique">
NFS : /etc/init.d/nfs start


2/ mount ...

3/ partimage -> creation image // attention il faut creer un seul gros fichier image sinon pbs cf. + bas

4/ sauvegarde de la table des partitions :

sfdisk -d /dev/hda > backup_hda



installation machine image fedora avec partimage


1/ booter avec cd rescue // linux rescue des CD de la FC4 pour les salles 120, 124 et 130
clavier : 16
(net-setup eth0 (normalement c'est automatique">
NFS : /etc/init.d/nfs start


2/ mount ...

3/ table des partitions
recuperation :

sfdisk /dev/hda < backup_hda



4/ partimage -> installation des images

message d'erreur : partimage "can't read block 0 from image"
j'essaie un chgt de version http://www.partimage.org
pas de chgt => modification de la technique de creation des images : on ne fait plus des fichiers de 2Go (defaut)
mais un gros fichier.
http://pittman.ws/articles/howto/partimage.html :
"If you are storing your image file on a Linux disk, (method 2) then I'd advise using "Automatic split" instead of the default second option that uses 2GB sections. Remember, if all else fails, this works every time when you use a native Linux filesystem on the server and you don't split the image into 2GB files. "


5/ initialisation du swap

mkswap /dev/hda6



6/ ici pbs avec grub-install donc solution plus rustique mais qui fonctionne :
cf href=http://www.fedora-france.org/modules/newbb/viewtopic.php?topic_id=10009&forum=4&post_id=61431

grub
root (hd0,4)
setup (hd0)
quit


avec ces commandes on informe le systeme (ds l'amorce du disque /dev/hda7)
qu'il doit aller voir sur la 5eme partition (la ou se trouve le /boot) ("(hdo,4)")
pour trouver les infos necessaires.

From http://www.fedora-france.org/modules/wfsection/article.php?articleid=117 :

"le BIOS active alors une courte séquence de codes, dite MBR (Master Boot Record), logée sur 512 octets en un endroit précis et normalisé du premier disque actif;
le MBR amorce alors un lanceur (boot loader dans la terminologie courante), NTLDR pour Windows XP, grub ou lilo pour Linux. Par défaut, Grub est utilisé par Fedora (lilo pour être installé en substitution à grub);

Copier le MBR nécessaire au boot de windows



sauvegarde du MBR :
dd if=/dev/sda of=/path/to/image count=1 bs=512

installation du MBR :
dd if=/path/to/image of=/dev/sda

Effacer un CD RW



http://www.davidgis.fr/blog/index.php?2010/11/04/762-effacer-un-cd-rw-reinscriptible

apt-get install cdrdao
mount
umount /media/cdrom0
cdrdao scanbus
cdrdao blank --device 1,0,0



Créer un .iso à partir d'un DVD



Mettre le DVD dans le lecteur puis :

dd if=/dev/sr0 of=/rep/dvd.iso



Afficher la date des commandes dans l'historique (5/2011)



Par défaut, la commande history n'affiche pas la date à laquelle
les commandes ont été effectuées.
Pour remédier à cela, il faut positionner la variable HISTTIMEFORMAT.
A rajouter dans .bashrc :

export HISTTIMEFORMAT='%F %Hh%M '


Pour rendre effective la modif :

source .bashrc



Source : http://www.mnxsolutions.com/linux/on-a-date-with-bash_history.html

Graver un .iso



wodim -v dev=/dev/sr0 -data dvd.iso



Grub 2



cf ?doc=Grub_2



Shell : envoyer des fichiers attachés par mail



Sources : http://en.wikipedia.org/wiki/MIME
http://yannesposito.com/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/

Envoyer un fichier image
1. Coder le fichier jpg :

uuencode -m image.jpg image.jpg >> image-code-ascii.txt



2. Création du fichier d'entête :

# more entete-jpg.txt
From: admin@domaine.fr
To: admin@domaine.fr
Subject: fichier jpg joint
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="frontier"

--frontier
Content-Type: text/html;
Content-Disposition: inline

ici le corps du message

--frontier
Content-Type: image/jpeg; name="fic.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="fic.jpg"

[...PLACER ICI LE CONTENU DU FICHIER CREE CI-DESSUS (image-code-ascii.txt)...]

--frontier--



3. Envoyer le fichier :

sendmail -t -oi < entete-jpg.txt



Envoyer un fichier xml
1. Coder le fichier xml :

uuencode -m test.xml test.xml >> xml-code-ascii.txt



2. Création du fichier d'entête :

# more entete-xml.txt
From: admin@domaine.fr
To: admin@domaine.fr
Subject: fichier xml joint
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="frontier"

--frontier
Content-Type: text/html;
Content-Disposition: inline

ici le corps du message

--frontier
Content-Type: application; name="fic.xml"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="fic.xml"

[...PLACER ICI LE CONTENU DU FICHIER CREE CI-DESSUS (xml-code-ascii.txt)...]

--frontier--



3. Envoyer le fichier :

sendmail -t -oi < entete-xml.txt



Utiliser mutt (+ simple)

mutt -s test -a fichier_donnees1.xml fichier_donnees1.xml -- mon_nom@domaine.fr < message.txt


-a : fichier attaché


Faire des recherches sur google avec wget



Si on fait une recherche simple sur google :

wget http://www.google.fr/search?as_q=mots+cles


On obtient le message d'erreur suivant :

HTTP request sent, awaiting response... 403 Forbidden
10:54:24 ERROR 403: Forbidden.



Solution : rajouter le User-Agent :

wget --user-agent Mozilla http://www.google.fr/search?as_q=mots+cles



Note : au passage, on peut préciser le fichier de sortie :

wget -O resultats.html --user-agent Mozilla http://www.google.fr/search?as_q=mots+cles


puis le nombre de résultats max par page :

wget -O resultats.html --user-agent Mozilla http://www.google.fr/search?as_q=mots+cles&num=300



Runlevel



Niveaux de Runlevel

S : Initialisation commune à tous les runlevels
0 : Arrêt de la machine
1 : Single-User
2,3,4,5 : Fonctionnement normal
6 : Reboot de la machine

Principes
Les principe de fonctionnement est le suivant :
tous les scripts de démarrage et d'arrêt sont stockés dans le répertoire /etc/init.d/.
les répertoires rc0.d, rc1.d ... rc6.d contiennent des liens qui vont appeller les scripts d'initialisation.
Si le lien commence par un S, le script va être appelé avec l'option start
Si le lien commence par un K, le script va être appelé avec l'option stop
le numéro qui suit le S ou le K indique l'ordre de démarrage ou d'arrêt.
Source : http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d'exploitation_GNU-Linux/Le_processus_d'initialisation


Voir le runlevel courant (2 méthodes)

$ runlevel
N 2
$ who -r
niveau d'exécution 2 2012-04-23 15:21


On est en runlevel 2

Runlevel par défaut - RedHat

$ cat /etc/inittab |grep def
# The default runlevel.
id:2:initdefault:



Runlevel par défaut - Debian

$ grep DEFAULT_RUNLEVEL /etc/init/rc-sysinit.conf
env DEFAULT_RUNLEVEL=2



Installer Rescue CD sur une clé USB



La procédure est indiquée ici : http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick.

Pour faire vite :

Montage de l'iso téléchargée ici http://www.sysresccd.org/Download

mount -o loop,exec /path/to/systemrescuecd-x86-x.y.z.iso /tmp/cdrom



Insérer la clé USB. La démonter.

Lancer le script d'installation

cd /tmp/cdrom
bash ./usb_inst.sh



Marche pô...
j'ai essayé à la main (cf http://pascalcrozet.blogspot.fr/2011/03/sysresccd-manual-fr-installer.html) mais c'est pas mieux...


tmpfs



/dev/shm (shm pour shared memory) est un fs de type tmpfs et correspond à un accès direct à la mémoire.
Les données qui y sont placées doivent l'être temporairement.
L'accès est cependant ultra-rapide.

La taille de ce système de fichiers se modifie lors du montage (et donc dans /etc/fstab).
Par exemple :

# cat /etc/fstab|grep tmpfs
tmpfs /dev/shm tmpfs size=12000m 0 0



La taille par défaut correspond à celle de la mémoire divisée par 2.

On trouve une taille max dans le fichier /etc/sysctl.conf:

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736



Il y a un bug dans la redhat 6 et le paramètre size est ignoré lors du boot.
La solution trouvée ici https://forums.oracle.com/forums/thread.jspa?messageID=10018717

cp /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit.bck
sed -i 's/-f /dev/shm//dev/shm/g' /etc/rc.d/rc.sysinit



(le sed supprime le paramètre -f passé lors du mount de /dev/shm)

Divers



Loglevels
La correspondance entre le numéro et le libellé est indiquée ici :

cat /usr/include/sys/syslog.h



Créer une séquence

seq 1 3
1
2
3



Set user id bit

Sous Linux, le set user id bit (chmod u+s ) fonctionne avec les exécutables mais pas avec les shells scripts pour des raisons de sécurité.
cf http://scofaq.aplawrence.com/FAQ_scotec1asroot.html

Lancer une commande dans un gnome-terminal et laisser celui ci ouvert
Si on fait :

gnome-terminal -x ls


ca ne fait rien.
Solution :
faire un shell de lancement :

cat shell_lancement
#!/bin/bash
ls
exec bash # utilisé pour éviter que le terminal ne se ferme


Et lancer :

gnome-terminal -x shell_lancement


ou

gnome-terminal --command shell_lancement



Sticky bit
"Le droit sticky bit est noté ---------t dans le cas ou t remplace un - ou ---------T, dans le cas ou t cache un x."
Source : http://www.christopher.compagnon.name/sitewww/unix-droits.html

Tester sa carte son facilement

cat <n'importe quel fichier> > /dev/dsp


Note : dsp = digital sampling

apt-get via ssh : annuler debconf
Lorsqu'on ne veut pas que apt-get ait un fonctionnement interactif, il suffit de positionner une variable d'environnement :

DEBCONF_FRONTEND='noninteractive' apt-get install openssl



Infos en vrac
avahi == bonjour = découverte auto des services sur le réseau (machines, CUPS, svr
audio, RDM, etc).
dépendances d'un package :

apt-cache rdepends package





Dernières modifs
Systemd (October 24th, 2020)
TP - rsyslogd (June 20th, 2017)
Gestion de la memoire (June 20th, 2017)
Ansible (November 10th, 2016)
Fichiers et systèmes de fichiers (November 8th, 2016)
X (October 20th, 2016)
Obtenir des informations sur le système (October 19th, 2016)

Contact
Pour m'envoyer un mail,
Pour me laisser un commentaire :
richard.brunooo
chez
gmail.com


powered by kure, modified by Bruno