Catégories
shell/bash

Connexion à un système distant pour copier un fichier ou un dossier

1) ssh 
ssh ou secure shell est un protocol qui nous permet de se connecter à serveur distant
Pour accéder à un serveur distant vous devez écrire quelque chose comme suit
 
ssh <username>@<adressip> -p <numero_port>
Exemple
ssh user_diallo@10.100.20.17 -p 2345

NB: l'option -p <numero_port> qui précise le port utilisé par le serveur est facultative, si rien n'est précisé c'est le port 22 qui sera utilisé par défaut (protocol TCP)
2) La commande FTP
FTP permet d'échanger un fichier à la fois dans les deux sens entre la machine cliente (celle qui a initié la connexion ) et la machine serveur (celle qui fournit le service ftp). La commande permettant d'initier une session FTP est généralement la commande suivante
FTP adressip
exemple: FTP 10.100.15.5
après avoir entrez l'adress ip le serveur vous demandera d'entrer le nom d'utilisateur ensuite le mot de passe
3) la commande SFTP
la commande sftp est un programme de transfert de fichier interatif avec une interface utilisateur similaire à FTP. Toutefois SFTP utilise le protocole de tranfert de fichiers SSH pour créer une connexion sécurisée avec le serveur

- Comment ouvrir et fermer une connexion SFTP à un système distant?
sftp usernamme@ipadress avec username le nom d'utilisateur du serveur distant et ipadress l'adress ip du serveur distant

exemple: sftp root@10.100.120.10

ou bien s'il y'a un port à préciser vous procéder comme suit

sftp -oPort=num_port username@ipadress avec num_port le numéro de port du serveur distant

exemple : sftp -oPort=2225 root@10.100.120.10

si la connexion est établie un message de confirmation et invite(sftp) sont affichés
IL est possible qu'on vous demande à taper le mot de passe du serveur distant en affichant le message suivant Password, dans ce cas enter le mot de passe pour établir la connexion

Après avoir établie la connexion si vous souhaitez télécharger un  fichier sur votre machine vous utiliser la commande get, vous procéder comme suit
get nom_du_fichier à télécharger
exemple: sftp> get fichier_télécharger.csv
si vous souhaitez fermer la connexion sftp et quitter taper bye
exemple: sftp> bye
4) la commande scp
Scp est l'outil Classique pour copier de manière chiffrée des fichiers entre postes distants sous linux. L'abbréviation SCP signifie "secure copy" et le terme secure fait référence au chiffrement employé pour le transfert sécurisé des données

4_1) De serveur à serveur en étant connecté à un serveur

scp chemin/vers/répertoire/source/fichier_a_copier user@ip:chemin/vers/reprtoire/destination

ou bien se déplacer sur le répertoire où se trouve le fichier à déposer sur le distant et faire

scp nom_du_fichier user@ipadress:chemin/vers/rep_destination

4_2)De serveur à serveur depuis votre machine local
Copie recursive de fichier d'un serveur(serveur1) vers un autre serveur (serveur2) depuis votre machine local

scp user1@ipadress1:chemin/vers/répertoire/source/fichier user2@ipadress2:chemin/vers/reprtoire/destination
5) la commande rsync
la commande rsync linux permet de transférer et de synchroniser efficacement des fichiers ou des répertoires entre machine local, un autre hôte ou entre deux serveurs distants. Cette commande est très efficace pour le transfert de dossier.
pour utiliser la commande on procède comme suit
on se déplace sur le répertoire où se trouve le dossier à déposer sur le serveur distant et on tape la commande suivante
rsync -r nom_du_dossier user@adressip:/repertoire/destination

exemple
rsync -r mondossier root@10.100.205.8:/arch/Diallo

Ces commandes vous seront utiles pour la connexion à un système distant et pour déposer des fichiers et des dossiers sur un serveur distant. Je reviendrais plus en détails sur chaque commande sur mes articles

Catégories
shell/bash

La condition de if/else dans les scripts de shell

Syntaxe 1

if [ conditinon ]
then
   instructions
fi

Exemple
if [ ! -d "$Diallo ]
then
   echo "le dossier n'existe pas"
fi

NB: then peut-être sur la meme ligne que if mais séparé par unpoint virgule

Cet exemple permet de vérifier si le dossier Diallo n'existe pas
Syntaxe 2

if [ condition1 ]
then
    instructions1
else [ condition2 ]
   instructions2
fi

Exemple:
if [ -d "$Diallo ]
then
    echo "le dossier existe "
else
    echo "le dossier n'existe pas"
fi

Syntaxe 3:

if [ condition1 ]
then
    instructions1
elif [ condition2 ]
then
    instructions2
else
    instruction
fi
Syntaxe avec L'opérateur logique ET
L’opérateur logique ET est représenté par la séquence de caractères &&.

if [ condition1 ] && [ condition2 ]
then 
   instructions
fi

exemple

if [ $USER = 'root' ] && [ $var -eq 10 ]
then 
   echo ok
fi

Dans l'exemple ci dessus si la variable $USER est égale à root et si la variable $var est égale à 10 alors la condition est vérifiée, l’instruction echo ok est alors réalisée et la chaîne ok est affichée sur la sortie standard
Syntaxe avec l'opérateur OU
L’opérateur logique OU est représenté par la séquence de caractères ||

if [ condition1 ] || [ condition2 ]
then 
   instructions
fi

Exemple
Shell
if [ $var -eq 8 ] || [ $var -eq 6 ]
then 
   echo ok
fi

Dans l'exemple ci dessus si la variable $var est égale à 8 ou 5 alors l’instruction sera réalisée et la chaîne ok sera affichée sur la sortie standard
Syntaxe de l'opérateur de différence !=
l'opérateur != permet de comparer deux chaînes

exemple 
if [ $USER != 'root' ]
then
   echo "La variable $USER n'est pas égale à root"
fi
Syntaxe de vérification d'un fichier vide
l'exemple suivant permet de vérifier si un fichier ($nomdefichier) existe

if [ -e $nomdefichier ]
then
   echo "Le fichier existe"
else
   echo "le fichier n'existe pas"
fi

Tableaux des opérateurs de comparaison
Tableau 1:
OpérateurDescription
=initialisation d’une constante numérique
==Comparaison de l’égalité
!=comparaison de différence
>comparaison de plus grand que
>=comparaison de plus grand ou égal que
<comparaison de plus petit que
<=comparaison de plus petit ou égal que
Tableau 2:
CaractèresSIGNIFICATIONS
-eq est égal à
-ne n’est pas égal à
-gt est plus grand que
-geest plus grand ou égal à
-ltest plus petit que
-le est plus petit ou égal à