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
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 : 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
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 :
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 |
|
|
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|