Notes sur mise en place serveur SUN Entreprise E450 / Ultra 5 -Casablanca
Février 2008
Philippe Marion
121 février 2008
1Laboratoire de mathématiques pures et appliquées Joseph Liouville ; 50, rue Ferdinand Buisson BP 699 ; 62 228 Calais cedex ; France
Table des matières
1 Installation et conguration 1
1.1 Openboot . . . 1
1.1.1 installation-démarrage à partir du cdrom . . . 1
1.1.2 démarrage à partir du disque . . . 1
1.1.3 quelques commandes de l'OpenBoot . . . 1
1.2 Gestion des disques . . . 2
1.2.1 format et création de partition . . . 2
1.2.2 Partitionnement de l'Entreprise 450 . . . 4
1.3 mise en réseau du serveur, d'une station . . . 5
1.3.1 identier l' interface réseau , le routage . . . 5
1.3.2 congurer l' interface réseau, le routage . . . 6
1.3.3 conguration permanente de l'interface réseau : chiers 6 1.4 conguration et gestions des imprimantes . . . 7
1.4.1 imprimantes HP . . . 7
1.4.2 cupsd . . . 8
1.5 gestion des logiciels . . . 8
1.5.1 gestion des packages : commandes pkgadd, pkgrm ... . 8
1.5.2 patch . . . 8
2 administration des comptes - administration réseau (NIS , NFS) 10 2.1 comptes utilisateurs . . . 10
2.1.1 modications minimum . . . 10
2.1.2 espace disques utilisateurs : les quotas sur disques . . 11
2.1.3 alias mail : correspondance prénom.nom -> login et inversement . . . 12
2.2 gestion centralisée des comptes utilisateurs par NIS . . . 12
2.2.1 mise en place du domaine NIS . . . 12
2.2.2 services : côté serveur, côté client . . . 12
2.2.3 netgroup : chier /etc/netgroup . . . 13
2.2.4 /etc/nsswitch.conf et map NIS . . . 14
2.2.5 commandes utiles . . . 14
2.3 export des espaces disques sur les stations clientes : NFS . . 15
2.3.1 côté serveur : /etc/dfs/dfstab . . . 15
2.3.2 côté client :/etc/vfstab . . . 15
3 autres services réseaux : inetd ,DNS, sendmail, www, samba, dhcp,ntp ... 16
3.1 contrôle d'applications réseau via inetd : ftp telnet etc. . . 16
3.1.1 inetd et sécurité . . . 16
3.2 DNS . . . 17
3.3 www : serveur apache . . . 17
3.4 samba . . . 17
3.5 dhcp . . . 17
3.6 ntp . . . 17
4 sauvegarde et restauration 18 4.1 sauvergarde avec l'utilitaire ufsdump . . . 18
4.1.1 script de backup de sauvegarde du serveur . . . 18
4.1.2 sauvegarde d'un station cliente sur le lecteur de bande du serveur . . . 18
4.2 restauration : ufsrestore . . . 20
4.2.1 exemple de récupération d'une partition complète . . . 20
4.2.2 exemple de recupération de chier en mode interactif avec ufsrestore . . . 20
4.2.3 transfert de partition avec ufsdump - ufsrestore . . . . 22
4.2.4 cas particulier de la réinstallation de la partition de démarrage sur une autre partition : installation du bootblock . . . 23
4.3 sauvegarde incrémentale : rdi-backup . . . 23
Résumé
Avertissement : Ces notes ont été rédigées uniquement dans le cadre d'une coopération avec le Maroc ( don d'anciens matériels de l'Université du Littoral à la Faculté des Sciences de Casablanca : un SUN Entreprise E450 et une vingtaine de stations ULTRA 5 dont certaines sont hors services). Elles n'ont donc pas la préten- tion d'être un cours d'administration système SUN/Solaris, elles ont seulement pour objet :
de rafraîchir la mémoire de l'auteur ( moi-même ) ... qui n'a pas mis les mains sur un clavier SUN depuis plusieurs années de laisser une trace à mes homologues Marocains, qui permet de remettre en service rapidement ce matériel , dans l'esprit avec lequel il avait été installé à l'Université du Littoral.
... En espérant qu'elles ne soient pas (trop) incomplètes et qu'elles ne comportent pas (trop) de coquilles !...
Chapitre 1
Installation et conguration
1.1 Openboot
L'Openboot de SUN , phase du démarrage primaire des stations SUN, donne l'accès à la nvram , prompt ok
1.1.1 installation-démarrage à partir du cdrom
ok boot cdrom
1.1.2 démarrage à partir du disque
ok boot disk (ou: boot disk:e , si e est la partition de démarrage)
1.1.3 quelques commandes de l'OpenBoot
ok boot probe-scsi-all target
...ok printenv # affiche les variables de la NVRAM
autoboot # true elle boot au démarrage
boot-device # boot device dans l'ordre séparés par des virgules ok setenv boot-device disk2
ok banner # infos sur la machine : adresse MAC etc.
ok boot -S # boot en mode moniteur single
ok boot -r # boot en reinitialisant la configuration
# (nécessaire par exemple après avoir changer
# la partition de démarrage)
1.2 Gestion des disques
les partitions des disques SCSI ont un nom de la forme /dev/[r]dsk/c0t1d0s6 où : r : le périphérique accessible en mode raw
c0 : le disque est pris en charge ici par le contôleur 0
t1 : target : la partition est sur le2ime disque SCSI ( numérotation commence à zéro)
d0 : unité ? (à vérier ) s6 : partition 6
1.2.1 format et création de partition
La table de partion d'un nouveau disque se crée avec l'utilitaire format.
Sous Solaris la commande permet de de choisir la taille directement en M- octets ( et non pas en blocs/cylindre ) . Une fois les partitions créées, il faut créer les lesystem avec la commande format. Exemple de séquence (évidemment , en pratique il faut manipuler que des disques dont aucune paritition n'est montée !)
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table current - describe the current disk
format - format and analyze the disk repair - repair a defective sector label - write label to the disk
analyze - surface analysis
defect - defect list management backup - search for backup labels verify - read and display labels
save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name
quit
AVAILABLE DISK SELECTIONS:
0. c0t1d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0 1. c0t3d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0 2. c0t5d0 <SEAGATE-ST34572N-0784 cyl 6240 alt 2 hd 8 sec 178>
/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@5,0 Specify disk (enter its number)[1]: 0
selecting c0t1d0 [disk formatted]
Warning: Current Disk has mounted partitions.
format> verify
Primary label contents:
ascii name = <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
pcyl = 2038
ncyl = 2036
acyl = 2
nhead = 14
nsect = 72
Part Tag Flag Cylinders Size Blocks
0 usr wm 0 - 890 438.54MB (891/0/0)
1 swap wu 891 - 1012 60.05MB (122/0/0)
2 backup wu 0 - 2035 1002.09MB (2036/0/0)
3 unassigned wm 0 0 (0/0/0)
4 unassigned wm 0 0 (0/0/0)
5 unassigned wm 0 0 (0/0/0)
6 unassigned wm 0 0 (0/0/0)
7 home wm 1013 - 2035 503.51MB (1023/0/0)
Une fois formatté, il faut créer les lesystem pour chacune des partitions :
#/usr/sbin/newfs -vN /dev/rdsk/c0t1d0s5 # ne pas oublier le "r"
1.2.2 Partitionnement de l'Entreprise 450
Le serveur contient 3 disques SCSI de 9Go 3 disques
t0 9Go ( root 180 , home_atos 150, var 1.7 Go, tmp 800Mo, usr 4Go, export 800mo)
t1 9Go ( opt 5.6 Go, opt1 2Go, opt2 0.8 Go)
t2 9G0 ( home1 2.1, home2 2.1, home3 2.1,home4 2.1) /dev/dsk/c0t0d0s0 185560 23035 143969 14% / /dev/dsk/c0t0d0s3 4034392 616745 3377304 16% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t0d0s4 1699687 284335 1364362 18% /var /dev/dsk/c0t0d0s6 799930 9 743926 1% /export /dev/dsk/c0t0d0s7 154945 73218 66233 53% /home /dev/dsk/c0t2d0s0 2107191 354115 1689861 18% /home1 /dev/dsk/c0t2d0s5 2107191 209673 1834303 11% /home2 /dev/dsk/c0t2d0s6 2107191 1142649 901327 56% /home3 /dev/dsk/c0t2d0s7 2338941 304454 1987709 14% /home4 /dev/dsk/c0t1d0s0 5646807 1799035 3791304 33% /opt /dev/dsk/c0t1d0s6 1986439 1099214 827632 58% /opt1 /dev/dsk/c0t1d0s7 895457 77193 764537 10% /opt2 /dev/dsk/c0t0d0s5 864751 339612 464607 43% /tmp
Remarque : /home est sur le disque 0 (cOt0d0s0) . C'est la partition où nous avions mis les comptes des administrateurs systèmes . A priori , à titre d'exercice , on peut formater ( commande format le disque 2 qui ne contient que les données des utilisateurs - étudiants et profs -.
1.3 mise en réseau du serveur, d'une station
1.3.1 identier l' interface réseau , le routage
Pour connaitre la(les) interface(s) réseau du système, utiliser la com- mande ifconfig :
# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232 inet 127.0.0.1 netmask ff000000
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500 inet 193.49.201.10 netmask ffffff00 broadcast 193.49.201.255 ether 8:0:20:86:37:f1
lo0 : interface loopback
le0 : interface Ethernet. Dans cet exemple , elle est active ( UP ), l'adresse IP est 193.49.201.10, le masque est 255.255.255.0 et le broad- cast est 193.49.201.255
L'E450 est doté de deux interfaces réseau , une fast Ethernet RJ45 (10/100Mb/s) (nom hmeo ou le0 ?), et une gigabit (ge0) -bre optique-. Les stations , n'ont qu'une seule interface réseau hmeo
Pour connaître la table de routage :
# netstat -nr Routing Table:
Destination Gateway Flags Ref Use Interface
--- --- --- --- --- ---
127.0.0.1 127.0.0.1 UH 0 1721 lo0
193.49.201.0 193.49.201.10 U 3 5532 le0
224.0.0.0 193.49.201.10 U 3 0 le0 -> kesako?
default 193.49.201.1 UG 0 9658
l'interface 193.49.201.10 a donc accès à tout le réseau 193.49.201.0 (Desti- nation), pour sortir elle passe par la passerelle (Flags UG , G comme gate- way ) dont l'adresse IP est 193.49.201.1
1.3.2 congurer l' interface réseau, le routage
# ifconfig le0 193.49.201.10 netmask 255.255.255.0 broadcast 193.49.201.255
# route -n add default 193.49.201.1 1 -> passerelle par défaut avec une métrique=1
# ifconfig le0 up -> si elle n'est pas déjà active
1.3.3 conguration permanente de l'interface réseau : chiers
A priori , la liste des chiers à modier (résultat d'un find sur l'adresse IP d'une station) devrait être :
/etc/inet/hosts <---hosts & IP /etc/net/ticlts/hosts <--- hosts
/etc/net/ticots/hosts idem
/etc/net/ticotsord/hosts "
/etc/nodename "
/etc/hostname.hme0 "
/etc/netmasks . .
En pratique, seuls les chiers hosts, nodename, hostname.hme0, netmasks
devraient être modiés. En cas de problèmes , vérier le script /etc/init.d/rootusr.sh (lien /etc/rcS.d/S30rootusr.sh) qui est le script d'initialisation minimum
du réseau . /etc/hosts :
<lma:marion 43>more /etc/hosts
## Internet host table
#127.0.0.1 localhost
193.49.201.10 lma lma.univ-littoral.fr 193.49.192.14 lma2 lma2.univ-littoral.fr
. . .
. . .
/etc/resolv.conf
search univ-littoral.fr #--> recherche du domaine par défaut nameserver 195.220.130.2 #--> serveur DNS 1
nameserver 195.220.130.10 #--> serveur DNS 2 /etc/defaultrouter : contient l'adresse IP de la passerelle /etc/netmasks : contient masque du réseau/sous-réseau
<lma:marion 43>more /etc/netmasks
## network-number netmask
#
193.49.201.0 255.255.255.0
<lma:marion 43>more /etc/hosts
#
# Internet host table
#127.0.0.1 localhost
193.49.201.10 lma lma.univ-littoral.fr 193.49.192.14 lma2 lma2.univ-littoral.fr
. . .
. . .
1.4 conguration et gestions des imprimantes
1.4.1 imprimantes HP
installer jetadmin (préinstallé ?) ou récupérable sur http://www.hp.
com/
1.4.2 cupsd
1.5 gestion des logiciels
1.5.1 gestion des packages : commandes pkgadd, pkgrm ...
pkgadd : ajouter une application,
pkginfo : informations sur l'application installées pkgchk : vérication de l'intégrité d'un package
lmac.univ-littoral.fr[88]: pkgadd -d apache-1.3.3-sol7-sparc-local The following packages are available:
1 APapache apache
(sparc) 1.3.3
Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: 1
Processing package instance <APapache> from
</usr/local/apache-1.3.3-sol7-sparc-local>
apache
(sparc) 1.3.3
Apache Server Project
1.5.2 patch
Tous les patch , notamment de sécurité , sont accessibles soit par un contrat de maintenance - ce que nous avions à l'Université (envoi de CD une à deux fois par an -), soit téléchargeables sur le site http://sunsolve.sun.
com/
lmac . univ−l i t t o r a l . f r [ 8 8 ] : pkgadd −d apache−1.3.3−s o l 7−sparc−l o c a l The f o l l o w i n g packages a r e a v a i l a b l e :
1 APapache apache
( s p a r c ) 1 . 3 . 3
S e l e c t package ( s ) you wish to p r o c e s s ( or ' a l l ' to p r o c e s s a l l packages ) . ( default : a l l ) [ ? , ? ? , q ] : 1
P r o c e s s i n g package i n s t a n c e <APapache> from </u s r / l o c a l / apache−1.3.3−s o l 7−sparc−l o c a l >
apache ( s p a r c ) 1 . 3 . 3
Apache S e r v e r P r o j e c t
Chapitre 2
administration des comptes - administration réseau (NIS , NFS)
2.1 comptes utilisateurs
La création des comptes se faisait manuellement en modiant les chiers suivants :
2.1.1 modications minimum
1. /etc/yppasswd : login (identiant), UID (matricule !), GID (groupe) GCOS (nom prénom description...), repertoire , shell .
Remarque : le chier Solaris standard est /etc/passwd. Seuls les comptes locaux sont dans le chier /etc/passwd , et l'ensemble des utilisateurs a été déporté dans le chier /etc/yppasswd . C'est une règle disons d'usage lorsque NIS est utilisé ( cf. section suivante )
2. /etc/shadow : ajout d'une ligne, modication de l'UID, le mot de passe crypté est laissé tel quel, il sera forcé ultérieurement par la commande yppasswd
3. /etc/netgroup : ajout de l'utilisateur ... pour qu'il puisse se loguer ! 4. mkdir login_compte :création du répertoire utilisateur
5. # chmod 711 login_compte : les droits sont xés à (drwx--x--x)
6. # cd /var/yp ; make : compilation des maps NIS.
7. # cd ~administrateur/ouverture_compte/modele
8. # tar cf - . | (cd ~login_compte ; tar xvf -) : transfert de tous les chiers proles sur le nouveau compte.
9. chown -R login_compte:groupe ./login_compte
Remarque : il est important de faire un copie de sauvegarde des chiers à modier avant toute modication :
cp -p /etc/yppasswd /etc/yppasswd.old
cp -p /etc/shadow /etc/shadow.old # ATT les .old existe > message cp -p /etc/netgroup /etc/netgroup.old
2.1.2 espace disques utilisateurs : les quotas sur disques
Pour éviter tout blocage de partition , les quotas ont été mis en place . Il y a deux types de quota :
quota hard : quota strict, l'utilisateur ne peut le dépasser.
quota soft : quota que l'utilisateur peut provisoirement ( 4 jours ) dépasser ( sans pour autant dépasser le quota hard . Au-delà de 4 jours, le compte est bloqué ; seul l'administrateur peut débloquer la situation.
Le réglage des quotas pour un utilisateur s'eectue au moyen de la commande edquota :
edquota -p prototype-user nouveau_login
Remarque : S'il existe un compte témoin (déjà réglé), sur la même la même partition que le nouvel utilisateur, on peut rapidement appliquer la même politique de quotas grâce à la commande :
edquota -p prototype-user nouveau_login
Enn , un utilisateur peut vérier son espace disque par la commande
quota -v
(Il peut être judicieux de placer cette commande dans le .cshrc de l'utilisa- teur de sorte qu'il puisse contrôler son niveau d'utilisation à cahque fois qu'il ouvre un terminal
2.1.3 alias mail : correspondance prénom.nom -> login et inversement
- /etc/aliases (correspondance premon.nom login pour l'adresse prenom) - /usr/local/etc/mail/revaliases (opération) inverse
- /usr/ucb/newaliases -> reconstruit la base des alias
- /usr/lib/sendmail -bi -oA/usr/local/etc/mail/revaliases -> idem pour revaliases
2.2 gestion centralisée des comptes utilisateurs par NIS
Avertissement : Bien que Solaris 2.x propose une nouvelle version de NIS (NIS+), nous avons mis en ÷uvre la version classique .
2.2.1 mise en place du domaine NIS
Coté serveur la mise en service de NIS se fait grâce à la commande ypinit -m :il sut de rentre le hostname du serveur ( et éventuellement des serveurs secondaire ) . Côté client, l'initialisation se fait grâce à la com- mande ypinit -c . La déclaration dynamiquement du nom de domaine NIS se fait grâce domainname nom_du_domaine (si il est déjà déni, la commande sans argument renvoit le nom de domaine). Pour le xer, placer le nom de domaine dans le chier /etc/defaultdomain , chier consulté lors du boot par les scripts de démarrage.
2.2.2 services : côté serveur, côté client
1. les démons à lancer sont :
ypserv et ypbind sur le serveur ypbind seulement sur les clients.
2. Démarrage Arrêt des services /usr/lib/netsvc/yp/ypstart /usr/lib/netsvc/yp/ypstop Note : en cas de problème
1. s'assurer que le portmapper est bien lancé /sbin/portmap ,
2. s'assurer que ypbind ait bien pu s'enrégistrer auprès du portmapper via
les commandes rpcinfo -p localhost et/ou rpcinfo -u localhost ypbind .
2.2.3 netgroup : chier /etc/netgroup
En pratique un netgroup est un nom associé à un triplet (machine, util- isateur, nom de domaine) ou à un autre nom . un exemple vaut mieux qu'un long discours :
# ceci est un commentaire : user licence (,carla,) (,antoine,) (,toto,) maitrise (,jean,) (,agathe,) (,theblues,) etudiants maitrise licence
# machine
salle1 (sun1,,) (sun2,,) (sun3,,) salle2 (sparc1,,) (sparc2,,) machines salle1 salle2
Remarques :
les champs laissés blancs fonctionnent comme des wild cards . On peut donc mettre plus de contraintes en ne permettant pas l'accès à tel ou tel utilisateur : (salle1,michel,) par exemple ne devrait avoir accès qu'à la salle1 et pas à la salle2,
en pratique , on se contente de modier le chier /etc/netgroupà chaque fois que l'on ajoute un utilisateur (sinon il ne pourra se con- necter sur les stations clientes) et à chaque fois que l'on rajoute une machine cliente (sinon, elle ne pourra pas monter les partitions par NFS sur son système de chier - cf. section NFS)
2.2.4 /etc/nsswitch.conf et map NIS
Le chier /etc/nsswitch.conf permet de congurer comment et dans quel ordre de priorité, le client accède à l'information. Sur chaque ULTRA 5 cliente, les seuls paramètres du chier à modier sont :
passwd: compat group: compat
hosts: files nis dns netgroup: nis
commentaires :
hosts : files nis dns signie que pour la résolution de nom, la ma- chine consultera d'abord le chier /etc/hosts , ensuite la map hosts NIS, et ensuite (si le nom n'est toujours pas résolu), s'adressera au DNS ( donc consultera le chier etc/resolv.conf pour connaître le serveur DNS etc... ,
l'option compat pour passwd et group , permet d'utiliser les options + et - (des clefs du chier netgroup, dans les chiers /etc/passwd et /etc/group, ainsi pour que l'ensemble des étudiants puissent se con- necter sur une station cliente, il sura d'éditer le chier /etc/passwd et d'ajouter la ligne :
+@etudiants::::::
2.2.5 commandes utiles
Toutes ces commandes peuvent être lancées à partir d'un client -par ex- emple - pour vérier le bon fonctionnement de NIS :
ypcat -x -> liste les map nis
ypcat map -> liste la map. ex: ypcat passwd , ypcat hosts ywhich -> renvoit le nom du serveur
ypdomainname -> renvoit le nom de domaine NIS
Toute modication des chiers /etc/yppasswd /etc/netgroup doit s'accom- pagner de la recompilation des maps sur le serveur NIS :
# cd /var/yp
# make
2.3 export des espaces disques sur les stations clientes : NFS
2.3.1 côté serveur : /etc/dfs/dfstab
Le serveur E450 est conguré en serveur NFS. Le serveur NFS est lancé par la commande /etc/init.d/nfs.server start . La syntaxe du chier /etc/dfs/dfstab est du type :
# Export comptes administrateurs
share -F nfs -o rw=mach_unix_dess /home
# Exports comptes maitrise
share -F nfs -o rw=salle2 /home1
# Exports comptes dess
share -F nfs -o rw=salle1 /home2
où salle1 et salle2 sont dans cette exemple les noms des machines dénies dans le chier /etc/netgroup (cf. NIS)
2.3.2 côté client :/etc/vfstab
Chapitre 3
autres services réseaux : inetd ,DNS, sendmail, www, samba, dhcp,ntp ...
3.1 contrôle d'applications réseau via inetd : ftp telnet etc.
Nombreux sont les services contrôlés directement par le super démon réseau inetd dont le chier de conguration est /etc/inet/inetd.conf . On notera en particulier les services suivants :
ftp telnet login exec uucp
Pour invalider un service il sut de le commenter avec un # dans le chier de
conguration /etc/inet/inetd.conf, puis de relancer inetd ( kill -1 <pid-d'inetd> )
3.1.1 inetd et sécurité
Bien souvent on considère utile de supprimer les services qui permettent de trouver facilement des informations sur les utilisateurs connectés au sys- tème , à savoir : finger , systat, netstat, ruserd, rexd et les services
de connexion à distances tels que rlogin, ftp, telnet 1, tftp 2.
Remarque ftp : les utilisateurs interdis de ftp sont ( en principe root ) notés dans le chier /etc/ftpusers
3.2 DNS
calais était DNS secondaire et serveur MX Il y aura donc des modifs faire /etc/name.boot
/var/dns/root.cache /var/dns/hosts
3.3 www : serveur apache 3.4 samba
3.5 dhcp 3.6 ntp
1on préferera leurs homologues sécurisés c.à.d. sftp et ssh
2tftpdétait utilisé sur l'Entreprise 450 pour les imprimantes : je n'en vois pas l'intérêt.
Il est en revanche indispensable pour connecter des terminaux X.
Chapitre 4
sauvegarde et restauration
L'entreprise est doté d'un lecteur de bande (160 mm , 7 Gb). Nous utili- sions l'utilitaire ufsdump pour sauvegarder les diérentes partitions tant sur les clients que sur le serveur.
4.1 sauvergarde avec l'utilitaire ufsdump
4.1.1 script de backup de sauvegarde du serveur
4.1.2 sauvegarde d'un station cliente sur le lecteur de bande du serveur
Il est tout à fait possible de faire une sauvegarde de station cliente sur le lecteur de bande du serveur.
1. Sur le serveur , en root valider l'accès en root du client via le chier /.rhosts
<serveur># cat /.rhost
client.univ-littoral.fr root
2. Sur le client, lancer le script de sauvegarde ./backup_full_client :
#! /bin/sh
## backup_full_client
##Ph.Marion avril 2000
######################################################
# Full Backup client ultra5 lmpa
# ses partions :
#
# / /usr /var /home /opt /usr/local (c0t0d0)
## Phase restore pour restituer par ex /usr (position 1)
## /usr/bin/mt -f /dev/rmt/0c rewind
# /usr/bin/mt -f /dev/rmt/0cn fsf 1 (Position 1)
# /usr/sbin/ufsrestore (i ou r)vbf 126 /dev/rmt/0cn
## Procedure backup :
## 1) sur le serveur, valider l'acces client
# 2) Sur le client, en root puis lancer ce backup
#######################################################
/bin/sleep 5
/usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0cn /dev/dsk/c0t0d0s0 /usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0cn /dev/dsk/c0t0d0s6 /usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0cn /dev/dsk/c0t0d0s3 /usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0cn /dev/dsk/c0t0d0s7 /usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0cn /dev/dsk/c0t0d0s4 /usr/sbin/ufsdump 0bf 126 serveur:/dev/rmt/0c /dev/dsk/c0t0d0s5
3. Enn dévalider l'acces root de la station cliente sur le serveur serveur # cp /dev/null /.rhosts
serveur # chmod 400 /.rhosts
4.2 restauration : ufsrestore
4.2.1 exemple de récupération d'une partition complète
Reprenons l'exemple du script backup_full_client ci-dessus. La procé- dure de restauration des d'une partiton est d'ailleurs indiquée -en commen- taire dans l'en-tête du script :
Si l'on veut restaurer par exemple la partition /usr qui était la 2e partition sauvegardées par ufsdump, on procédera comme suit :
1. rembobinage complet de la bande
# /usr/bin/mt -f /dev/rmt/0c rewind
2. positionnement sur le 2e
# /usr/bin/mt -f /dev/rmt/0cn fsf 1
Remarque : devrmt0cn, n signiant no rewind 3. restauration proprement dite :
# /usr/sbin/ufsrestore (i ou r)vbf 126 /dev/rmt/0cn
4.2.2 exemple de recupération de chier en mode inter- actif avec ufsrestore
restauration du mail à partir d'une bande .
0)Se placer dans un répertoire temporaire /var/tmp/bidon 1) rembobinage: --> pas de pbs
---
lma.univ-littoral.fr[162]: mt -f /dev/rmt/0cn rewind
2) placement sur le point d'ancrage : i.e 2ème filesystem du ufsdump --- lma.univ-littoral.fr[163]: mt -f /dev/rmt/0cn fsf 2
3) ufsrestore mode "interactif ,i verbeux v , f -> precise le device en entree ---
lma.univ-littoral.fr[164]: ufsrestore ivf /dev/rmt/0cn Verify volume and initialize maps
Media block size is 96
Dump date: Fri Jan 22 14:25:34 1999 Dumped from: Fri Jan 22 11:29:19 1999
Level 9 dump of /var on lma.univ-littoral.fr:/dev/dsk/c0t3d0s7 ---->suis bien sur "/var"
Label: none
Extract directories from tape Initialize symbol table.
ufsrestore > ls
.: 2 *./ 90704 adm/ 30239 mail/ 105785 tmp/
2 *../ 128409 lp/ 124658 spool/
ufsrestore > cd mail ---> commande cd et ls OK !!!
ufsrestore > ls ./mail:
30239 ./
2 *../
30252 toto 30214 titi
30269 jeanmarc 30234 daniel 30245 marion
ufsrestore > add /mail/marion ---> ajout dans la liste de fichiers a extraire Make node ./mail - ---> de marion... creation du node OOOOKKKK
---> on peut meme verifier avec ls et cd que le fichier est bien dans ---> la liste: ufrestore place des * devant les noms de fichiers --->que l'on veut extraire
ufsrestore > extract Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start with the last volume and work towards the first.
Specify next volume #: 1 ---> taper 1 ???
---attendre---
set owner mode [yn] n quit
4.2.3 transfert de partition avec ufsdump - ufsrestore
Si par exemple, la partition /usr du disque est pleine et que l'on veuille transférer l'intégralité de /usr sur une partition précédemment créée, on procédera comme suit :
#mount /dev/dsk/c0t1d0s5 /mnt # on monte la nvelle partition
#cd /mnt
#ufsdump 0bf 126 - /usr | ufrestore rf - où : 0 : niveau 0 (tous les chiers sont sauvegardés) b : mode blocs
126 : taille des blocs ? (à vérier)
r : restaure recursivement tous les chiers, répertoires et sous-répertoires f :sortie de ufsrestore dans un chier...,
- :...qui dans cet exemple, la sortie stdout soit le terminal dans lequel nous avons lancé la commande.
4.2.4 cas particulier de la réinstallation de la partition de démarrage sur une autre partition : installation du bootblock
La copie du programme de démarrage se trouve sur /usr/platform/<nom_plate-forme>/lib/fs/ufs . Pour l'installer , il sut de lancer la commande installboot :
#cd /usr/platform/`uname -i`/lib/fs/ufs
#installboot bootblock /dev/dsk/c0t1d0s0
Pour forcer l'enrégistrement de cette modication de partition , il faudra rebooter la machine avec l'option -r de l'OpenBoot :
OK boot -r
4.3 sauvegarde incrémentale : rdi-backup
En ce qui concerne les comptes utilisateurs , il me parait judicieux de mettre en place un système de sauvegarde incrémentale. On peut notam- ment utiliser l'utilitaire rdiff-backup (qui se trouve dans les contributions du domaine publique), très simple à mettre en ÷uvre . Il peut être intéres- sant également de pouvoir récupérer un projet dans l'état où il se trou- vait il y a 7 jours. Tout tient dans un seul script (rdiff-backup.csh) :
#!/bin/csh -f
#######################################
#auteur: Ph. M
#date :decembre 2005
##objet: sauvegarde incrementale de tous les comptes
## ( /home/users /home/guests )
#a l'exception de
# - liens vers /archives
# - ~/tmp , ~/TMP
# - cache mozilla /home/*/users/.mozilla/**/**/Cache
# - cache netscape
# - liens socket ...( option :--exclude-special-files)
#crontab: tous les jours
#######################################
## S. incrementales
# ---
#rdiff-backup --remove-older-than 2W --force /le_repertoire_de_sauvegarde
#crontab: tous les jours
#######################################
# Recuperation exemple
# ---
#1) rdiff-backup -r now /backup-user/home/users/marion/admin /Divers/test-rdiff
##2) recup de la version d'il y a 10 jours
## rdiff-backup -r 10D /backup-user/home/users/marion/fichier /tmp/fichier
#
######################################
rdiff-backup --exclude-special-files \
--exclude '/home/**/**/.mozilla/**/**/Cache' \ --exclude '/home/**/**/.netscape/cache' \ --exclude '/home/**/**/tmp' \
--exclude '**.exe' \ --exclude '**.EXE' \ --exclude '**/core.*' \ --exclude '**/a.out' \ --exclude '**/*.o' \ --exclude '**/*~' \ --exclude '**/*%' \ --exclude '**/*.bak' \
--exclude '/home/lost+found' \ --exclude '/home/old-saxo' \
/home /backup-user/le_repertoire_de_sauvegarde
1. à la 1re la sauvegarde est complète,
2. on l'exécute toutes les nuits ( lancer l'exécution via la crontab )
3. on exécute également toutes les nuits ( crontab ) la commande suivante pour éliminer les plus anciennes :
rdiff-backup --remove-older-than 2W --force /le_repertoire_de_sauvegarde Remarque 1 : 2W (2 semaines) peut être ajusté en fonction de la taille
de la partition de sauvegarde) Remarque 2 : Il est bien évidemment intéressant que le /le_repertoire_de_sauvegarde soit en en réalité une partition qui se situe sur un autre PC- station que le serveur , monté par NFS