To use PuTTY’s PSFTP:

Accédez à la page de téléchargement PuTTY, téléchargez le programme d’installation MSI et exécutez-le pour installer et configurer leurs utilitaires. Vous pouvez également télécharger psftp.exe et puttygen.exe dans un répertoire de votre PATH.

Téléchargez une clé privée sur votre système Windows ou générez une nouvelle clé à l’aide de puttygen. Enregistrez-le dans un répertoire de votre choix, par exemple :

C:\putty\id_rsa.ppk.

Si nécessaire, ajoutez votre clé publique à ~ / .ssh / authorized_keys sur le serveur distant.
Testez la connexion à partir de la ligne de commande en utilisant les lignes suivantes :

drive:\> psftp -v -i "[drive]:\putty\id_rsa.ppk" [user]@[remote]  
Using username "[user]"  
The server's host key is not cached in the registry 
...
Store key in cache? (y/n) y  
Remote working directory is /home/user  
psftp> ls 
psftp> quit  

where:
[drive] Is the drive on which the private key is saved.

[user] Is your user ID.

[remote] Is the name of your remote server.

Vous ne devriez pas être invité à entrer un mot de passe ou une phrase secrète. Cependant, si vous ne vous êtes pas déjà connecté au serveur, vous serez invité à stocker la clé dans le cache. Répondez y et vous ne serez plus invité à le faire. Vous devez le faire pour que le serveur DataMigrator ne reçoive pas cette invite.

Dans votre PATH, créez un fichier appelé sftp.bat avec les lignes suivantes:

@echo off 
psftp -i "[drive]:\putty\id_rsa.ppk" %1 %4 %5 %6 –batch

where:
[drive] Is the drive on which the private key is saved.

Transfert de fichier via SSH

Dans ce chapitre, nous allons étudier différentes méthodes pour transférer des fichiers d’une machine à une autre via le protocole SSH. Il existe en effet plusieurs manières de faire pour échanger des fichiers en utilisant SSH :

  • SCP
  • SFTP
  • SSHFS

Le plus souvent, SCP est SFTP sont utilisés, SSHFS correspond à des besoins plus précis et spécifiques. Mais nous allons voir tout cela ensemble. C’est partie ! 🙂

I. SCP : Secure Copy

SCP est le nom d’une commande fournis par le paquet « opensshclient« . La commande permet de façon très simple d’échanger des fichiers et des dossiers entre un client SSH et un serveur SSH.

L’utilisation de la commande SCP permet de rapidement prendre et envoyer des fichiers en ligne de commande entre machines Linux.

Nous allons ici utiliser la même structure de commande que la commande « cp » sous Linux qui permet de copier un fichier. SCP prend en effet le modèle de « cp » pour son utilisation basique.

Prenons le schéma suivant, il est souvent plus facile de visualiser les flux réseau ainsi :

ssh-scp-linux-01

On dispose donc de deux machines sous Linux, avec chacune leur arborescence.

Envoi d’un fichier via SSH en utilisant SCP

Si je suis sur la Machine mickael et que je souhaite envoyer le fichier /home/mickael/data/Fichier2 dans le répertoire /var/www du serveur Linux, je vais utiliser la commande suivante :

scp /home/mickael/data/Ficher2 root@192.168.10.131:/var/www/

Quelques explications, vous allez voir, ce n’est pas si complexe que cela 

Ici, on retrouve la structure de la commande « cp » dans laquelle on spécifie la source, puis la destination. Entre les deux, on peut voir « root@192.168.10.131 :« .

En effet, étant donné que l’on souhaite envoyer le fichier en question sur une autre machine, il faut bien spécifier son IP, de plus, si l’on passe par SSH, il faut s’authentifier. On va donc se logguer en root sur notre machine distante pour y déposer notre fichier. Le « : » permet de spécifier le chemin dans la machine distante. S’il n’est pas spécifié, les fichiers atteriront dans le dossier par défaut de l’utilisateur : la home. (/root pour l’utilisateur root, /home/user pour l’utilisateur « user« , etc.).

Note : Il faut bien sûr être certain que le chemin de destination existe sur la machine de destination. Dans le cas contraire, nous obtiendrons une erreur de la part de SSH.

Téléchargement d’un fichier via SSH en utilisant SCP

Si l’on souhaite effectuer l’opération inverse, c’est-à-dire télécharger un fichier du serveur Linux vers la Machine mickael alors que l’on se trouve sur cette même Machine Mickael, c’est aussi possible. Il faut pour cela connaître à l’avance le chemin et le nom du fichier à télécharger puis utiliser scp de cette façon :

scp root@192.168.10.131:/var/www/Fichier2 /home/mickael/data/

Ici, on retrouve exactement la même construction que notre précédente commande mais nous avons inversé l’ordre des chemins. Cela parce que la source doit toujours se trouver avant la destination. On spécifie à nouveau l’utilisateur avec lequel se connecter en SSH sur l’IP distante et le chemin sur le serveur distant. On précise ensuite le dossier local dans lequel nous souhaitons entreposer les fichiers téléchargés.

Transfert de dossier : utilisation de la récursivité

Ici, nous n’avons pour l’instant téléchargé et envoyé qu’un fichier unique. Cela est pratique mais peut devenir long si l’on souhaite envoyer tout un dossier avec plusieurs fichiers à l’intérieur. La commande SCP nous offre en fait la possibilité de faire une copie distante avec de la récursivité.

Le fait qu’une action soit récursive veut simplement dire que si des sous-éléments de l’élément visé sont présents, l’action s’effectuera également sur eux.

Autrement dit si on décide de copier un répertoire via SCP, les fichiers de ce répertoire seront également copiés et réorganisés de la même façon chez la machine cible. Il faut pour cela ajouter l’option « -r » juste après « scp« , exemple :

scp -r /home/mickael/data/ root@192.168.10.131:/var/www/

En suivant notre schéma initial, les fichiers « Ficher1« , « Fichier2 » et « Fichier3 » vont tous trois être transférés, et cela à l’aide d’une seule commande, pratique n’est-ce pas ?

D’ailleurs lors d’un transfert, nous pouvons voir la liste des fichiers transférés :

ssh-scp-linux-02

Une petite précision concernant la situation dans laquelle le port du serveur SSH n’est plus le port par défaut (22), c’est une configuration que nous avons étudié lors de la configuration d’OpenSSH. Quand le SSH est changé, l’application ne peut naturellement pas le devenir car elle vise par défaut le port 22. Il faut donc spécifier à SCP le port sur lequel aller discuter, cela se fait via l’option « -P« , à spécifier avant la source et la destination :

scp -r -P 7256 /home/mickael/data/ root@192.168.10.131:/var/www/

Utilisation d’un client Windows

Si votre client est un Windows, vous pouvez utiliser le logiciel WinSCP qui se chargera de faire le même type de transfert avec une interface graphique.

Vous pouvez trouver WinSCP, qui porte d’ailleurs bien son nom, sur son site officiel : http://winscp.net/eng/download.php .

Après avoir démarré le logiciel (et l’avoir installé s’il s’agit de la version non portable) vous verrez apparaître cette fenêtre :

ssh-scp-linux-03
Fenêtre de connexion WinSCP

Ici, on retrouve une configuration un peu comme celle de Putty sous Windows, on peut y spécifier l’IP ou le nom de notre serveur cible, son port, le nom d’utilisateur et son mot de passe. Vous retrouverez également en haut le champ » Protocole de fichier ». En effet, WinSCP permet de gérer les transferts en SCP, mais également en SFTP (que nous verrons juste après) et en FTP, dans cette liste de sélection, choisissez donc « SCP » :

ssh-scp-linux-04

On pourra ensuite cliquer sur « Connexion » pour lancer la connexion. On se retrouvera alors avec une fenêtre comme celle-ci :

ssh-scp-linux-05

Ici, on peut apercevoir l’arborescence de mon client Windows à gauche, et l’arborescence de mon serveur Linux à droite, avec la possibilité de simplement glisser/coller des fichiers entre les deux, le tout de manière sécurisée grâce au SSH !

Comme vous le voyez, WinSCP vous propose de nombreuses options comme des raccourcis, des enregistrements de session, etc. Mais ce n’est pas l’objet de ce cours, il fait néanmoins partie de la boite à outils d’un bon administrateur système. 😉

II. SFTP : Secure FTP

SFTP (Secure FTP), qui comme son nom l’indique est un dérivé du protocole « FTP » (File Transfert Protocol), permet lui aussi de transférer des fichiers d’une machine Linux à une autre de façon très simple.

SFTP est une extension du protocole SSH, plus techniquement un « subsystem« , on peut le voir rapidement dans le fichier de configuration d’OpenSSH :

subsystem sftp /usr/lib/openssh/sftp-server

On peut décrire le SFTP comme l’encapsulation du protocole FTP dans une « couche » sécurisée qu’est SSH. Autrement dit, en SFTP, client et serveur dialoguent en FTP mais utilisent SSH pour faire transiter les paquets, ce qui permet de sécuriser l’utilisation du FTP.

En effet, le FTP est un protocole ancien qui n’a pas été conçue à la base avec une pensée pour la sécurité. Il fait passer les informations (identifiants et fichier) en clair sur le réseau ! SSH permet alors de sécuriser l’utilisation du FTP en chiffrant les échanges entre les machines.

En l’état, il existe peu de différence entre utiliser SCP ou SFTP. Avec un client comme WinSCP sous Windows, l’effet sera exactement le même et l’utilisation aussi. Vous n’aurez qu’à choisir « SFTP » au lieu de « SCP » lors du remplissage des informations de connexion.

Sous Linux, en tant que client, la commande « sftp » s’utilise exactement comme la commande « scp« , celle que nous avons vu plus haut.

III. SSHFS : SSH FileSystem

SSHFS signifie « SSH File System« , il s’agit ici d’une notion un peu plus avancée que du simple transfert de fichier comme SCP ou SFTP puisque SSHFS va nous permettre de monter un répertoire d’une machine Linux sur une autre, de la même manière que l’on peut monter un répertoire SMB entre deux machines.

Quelle différence entre monter un répertoire et copier un fichier ?

Monter un répertoire va permettre à la machine cliente de voir un répertoire en temps réel alors que celui-ci se situe sur la machine distante. Si une modification est effectuée sur ce répertoire, le client le verra instantanément et il pourra agir dessus comme s’il s’agissait d’un répertoire local. Dans le cas de SSHFS, l’échange qui permet la lecture et l’écriture sur le répertoire est fait sur le réseau en utilisant le protocole SSH.

Cela peut être encore un peu flou pour le moment, dans ce cas-là, rien ne vaut la pratique ! Reprenons notre schéma :

ssh-scp-linux-01

Ici, en me situant sur le « Serveur Linux« , je voudrais avoir accès en permanence au dossier « /home/mickael/data » de « Machine mickael« . Je souhaite donc monter ce répertoire distant en local, admettons dans /mnt/data. Je dois commencer par installer SSHFS sur mes deux machines Linux, pour l’installer sous Debian 8 :

apt-get install sshfs

Pour l’installer sous CentOS 7 :

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install fuse-sshfs

C’est ensuite très simple, si l’on souhaite monter le répertoire « /home/mickael/data » de la machine de Mickael sur le serveur, on va, depuis le serveur, exécuter les commandes suivantes :

mkdir /mnt/data
sshfs mickael@192.168.10.1:/home/mickael/data /mnt/data

Plus clairement, je demande à monter le répertoire /home/mickael/data de la machine 192.168.10.1 dans mon répertoire local /mnt/data, le tout en m’authentifiant en tant que « mickael » sur la machine distante. Attention, il ne s’agit pas d’une copie, si je démonte le répertoire /mnt/data, les données ne seront plus présentes.

Dès lors, quand on se rend sur le répertoire local /mnt/data, on pourra voir en direct le contenu du répertoire /home/mickael/data distant, et mieux encore, on pourra y ajouter, supprimer ou modifier des fichiers et dossiers à volonté étant donné que le répertoire est monté. Si vous avez du mal à saisir le concept, je vous recommande de tester cela entre deux machines Linux, cela devient tout de suite plus clair !

D’ailleurs, si vous utilisez la commande « mount » qui permet sous Linux de visualiser les points de montage présents, on pourra clairement voir notre montage SSHFS :

mickael@192.168.10.131:/home/mickael/data on /mnt/data type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

Une fois nos opérations terminées, il est recommandé de démonter le montage effectué. C’est-à-dire de couper la liaison SSHFS entre les deux machines. Pas d’inquiétude, cela ne changera rien aux modifications faites étant donné qu’elles sont faites en direct. Pour ce faire, utilisez la commande « umount » et précisez le répertoire de montage local :

umount /mnt/data

Nous avons vu dans ce chapitre les différentes façons dont SSH peut être utilisé pour effectuer des transferts de fichier, ce sont des techniques très souvent utilisées lors de l’administration d’un système contenant des serveurs Linux, notamment quand ceux-ci sont distants comme les serveurs hébergés chez des grands hébergeurs. Nous allons dans le prochain chapitre étudier les possibilités qu’offre SSH concernant le X11 Forwarding.

Les protocoles FTP, FTPS et SFTP pour les débutants

I. Présentation

Dans cet article, nous allons découvrir trois protocoles incontournables : FTP, FTPS et SFTP. Ces trois protocoles servent à effectuer du transfert de fichiers, aussi bien pour envoyer que recevoir, mais avec des différences notamment au niveau de la sécurité.

Tutoriel disponible au format vidéo en français :

II. Le protocole FTP

FTP signifie « File Transfer Protocol », c’est-à-dire un protocole de transfert de fichiers. Pour la petite histoire, il s’agit d’un protocole ancien apparu dans les années 1970 mais sa première version finale est de 1985 et correspond à la RFC 959. Depuis quelques RFC supplémentaires sont apparues afin d’intégrer les évolutions du protocole.

Il s’agit d’un protocole qui permet d’envoyer et recevoir des fichiers et qui fonctionne sur le mode client/serveur. Un client FTP va établir une connexion TCP avec un serveur FTP dans le but d’échanger des données.

Cette connexion s’appuie sur deux canaux différents :

  • Un canal de contrôle qui sert à l’authentification, à l’envoi des commandes FTP ou encore à la navigation dans l’arborescence du serveur FTP
  • Un canal de données qui sert tout simplement au transfert des données, que ce soit pour envoyer ou recevoir

L’inconvénient principal du protocole FTP, c’est qu’il n’est pas sécurisé. Pour cause, il a été inventé à une époque où la sécurité n’était pas aussi importante qu’aujourd’hui. Lorsque vous établissez une connexion avec un serveur FTP, l’identifiant, le mot de passe et toutes les commandes que vous passez, transite en clair sur le réseau.

A. FTP : mode actif et mode passif

Lorsque l’on configure un serveur FTP, il y a deux possibilités : utiliser le mode actif ou le mode passif.

Comme nous pouvons le voir sur le schéma ci-dessous, qui représente le mode actif, le canal de contrôle s’établit sur le port 21 du serveur FTP. Ensuite, le canal de données s’établit sur le port 20. Par conséquent, le mode actif s’appuie sur deux ports : 20 et 21.

FTP

Concernant le mode passif, le canal de contrôle s’effectue également sur le port 21/TCP, comme pour le mode actif. Ensuite, pour établir le second canal, canal de données donc, le client FTP et le serveur FTP vont définir un port à utiliser dans le but de passer outre l’éventuel pare-feu. Dans le mode actif, c’est le serveur FTP qui initie le canal sur le port 20 à destination du client : s’il y a un pare-feu, il y a des chances que ce soit bloqué puisqu’il s’agit d’une connexion entrante. Avec le mode passif, on a une réponse à cette problématique.

Autrement dit, le port 20 n’est pas utilisé avec le mode passif mais un autre port supérieur à 1024.

B. Les commandes FTP

Concernant la notion de commandes FTP, il faut savoir qu’il en existe une trentaine. Voici quelques exemples de commandes :

  • GET ou RETR : récupérer un fichier
  • PUT : envoyer un fichier
  • MKD : créer un dossier
  • CLOSE : fermer la session FTP en cours
  • Etc.

Pour récupérer un fichier, après avoir établit une connexion avec le serveur, nous pourrons faire :

get monfichier.pdf

C. Clients FTP et serveurs FTP

Pour faciliter l’usage du protocole FTP, il existe des logiciels que l’on appelle des clients FTP. Sur Windows, les deux que j’utilise personnellement et qui sont reconnus sont FileZilla et WinSCP. Sur Linux, il y a tout simplement l’outil « ftp » en ligne de commande.

PowerShell peut également jouer le rôle de client FTP : se connecter à un serveur FTP avec PowerShell

Pour la partie serveur, c’est pareil il existe diverses solutions. Sur Windows, nous pouvons citer FileZilla Server ainsi que la solution IIS de Microsoft qui intègre un module FTP. Sur Linux, il existe plusieurs solutions notamment ProFTPd et PureFTPd.

III. Le protocole FTPS

Le protocole FTPS n’est autre que la déclinaison sécurisée du protocole FTP. Le chiffrement SSL/TLS vient s’ajouter pour sécuriser les communications entre le client FTP et le serveur FTP. Pour le reste, c’est identique.

Néanmoins, il faut préciser que le FTPS fonctionne selon deux modes :

  • FTP explicite : dans ce cas la connexion s’établie sur le port 21 et le client FTP négocie avec le serveur FTP pour chiffrer la connexion. Des commandes FTP sont utilisées : « AUTH TLS » ou « AUTH SSL » et « PROT P »
  • FTP implicite : le client commence directement la connexion avec le chiffrement SSL et va utiliser plutôt le port 990 que le port 21

En fonction du mode, le protocole FTPS peut utiliser le port 990 en TCP pour le canal de contrôle et le port 989 pour le canal de données. Le port 21 peut également être utilisé.

FTPS

IV. Le protocole SFTP

Pour terminer intéressons nous au protocole SFTP. Tout d’abord, il faut savoir que le SFTP signifie « SSH File Transfer Protocol » ou « Secure File Transfer Protocol« . Nous pouvons dire les deux.

En plus du protocole FTP, il va s’appuyer sur un deuxième protocole : le SSH. Le poste client va établir un tunnel SSH avec le serveur distant, et le flux FTP passera dans ce tunnel SSH, ce qui signifie que le flux est sécurisé.

Il n’est pas nécessaire d’avoir un serveur FTP pour établir une connexion à l’aide du SFTP. Par contre, vous devez avoir un serveur SSH sur le serveur distant donc la connexion s’effectue sur le port SSH, à savoir le port 22 par défaut. Une seule connexion à établir et ensuite tout se passe dans le tunnel SSH.

SFTP

Lorsque le tunnel est établit, vous pouvez effectuer du transfert de fichiers de façon sécurisée via FTP, avec les logiciels habituels : FileZilla et WinSCP.

Pour en savoir plus, je vous oriente vers ce chapitre de notre cours :⭐ SFTP

V. Le mot de la fin

En résumé, vous devez prioriser l’utilisation du FTPS ou du SFTP qui sont deux solutions sécurisées contrairement au FTP qui ne l’est pas. Avec le FTPS et le SFTP, les identifiants et les données sont chiffrées sur le réseau. Sur un serveur où vous avez un accès SSH, le SFTP est une bonne solution car nous n’avez pas besoin de monter un serveur FTP. Tout dépend de ce que vous souhaitez faire : de la gestion de fichiers multi-utilisateurs ou simplement du transfert de fichiers ponctuel sur un serveur.

Escape Characters

Character to be escapedEscape SequenceRemark
%%% 
^^^May not always be required in doublequoted strings, but it won’t hurt
&^&
<^<
>^>
|^|
^’Required only in the FOR /F « subject » (i.e. between the parenthesis), unless backq is used
`^`Required only in the FOR /F « subject » (i.e. between the parenthesis), if backq is used
,^,Required only in the FOR /F « subject » (i.e. between the parenthesis), even in doublequoted strings
;^;
=^=
(^(
)^)
!^^!Required only when delayed variable expansion is active
« «  »Required only inside the search pattern of FIND
\\\Required only inside the regex pattern of FINDSTR
[\[
]\]
« \ »
.\.
*\*
?\?

Source

Purge de fichiers FORFILES chemins UNC

set w_dir=%1
set w_nb_jrs=%2

echo Purge de la Directorie : %w_dir%
echo Purge des fichiers et dossiers vieux de plus de %w_nb_jrs% jours

echo Espace avant purge
dir %w_dir%..

pushd %w_dir%

dir
echo « ———————————————–« 
FORFILES /S /D -%w_nb_jrs% /C « cmd /c dir @path » 2> nul
set erreurcode=%errorlevel%
if « %erreurcode% » equ « 0 » goto SUITE1
goto FIN

:SUITE1
forfiles /S /D -%w_nb_jrs% /C « cmd /c del /f /q @path » 2> nul
forfiles /S /D -%w_nb_jrs% /C « cmd /c rd /S /Q @path » 2> nul
echo « Effacement des dossiers et fichiers ci-dessus »
echo Espace après purge
dir

:FIN
PopD
set errorlevel=0

accent avec robocopy

Lorsque le chemin vers un répertoire source ou destination de votre script robocopy contient un accent, il est possible, selon la configuration de votre système Windows, que vous obteniez une erreur. En effet DOS n’arrivera pas à interpréter cet accent et ne va donc pas trouver le chemin du répertoire spécifié …

Afin que les accents soient correctement interprétés il suffit de rajouter la commande suivante au début de votre script.

chcp 1252

La commande chcp, intégrée nativement à Windows, permet de modifier le jeu de caractère (ou « code page ») de votre système d’exploitation. Le code page 1252 est le code page original de Windows, pour l’Europe de l’ouest et donc la France. Il peut arriver que le code page d’un système ne soit pas 1252 et que les accents soient donc mal interprétés.

En ajoutant cette commande en début de script, vous améliorerez leur portabilité afin qu’ils fonctionnent sur n’importe quel ordinateur ayant un code page différent.

Date du dernier redémarrage de Windows

Dans une fenêtre de commande.

Ici c’est le 25 août 2002 à 1h02

C:\Users\ADMSE_EFougere>net statistics workstation
Workstation Statistics for \WCTSRV0054

Statistics since 8/25/2020 1:02:53 AM

Bytes received 2918507
Server Message Blocks (SMBs) received 543
Bytes transmitted 2164838
Server Message Blocks (SMBs) transmitted 0
Read operations 936
Write operations 2
Raw reads denied 0
Raw writes denied 0

Network errors 0
Connections made 0
Reconnections made 0
Server disconnects

Sessions started 0
Hung sessions 0
Failed sessions 0
Failed operations 0
Use count 247
Failed use count 0

The command completed successfully.

C:\Users\ADMSE_EFougere>

Pb zabbix

En ligne de commande sur le serveur zabbix : root@wctsrv0010:/usr/local/bin# zabbix_get -p 10050 -k agent.version -s wctsrv0041

zabbix_get [1536]: Check access restrictions in Zabbix agent configuration

Sur l’inteface web :

Received empty response from Zabbix Agent at [10.129.20.53]. Assuming that agent dropped connection because of access permissions

Server=emea_zabbix.wabtec.com

Pb KTP

De ce que je comprends, le fichier à traiter doit être un fichier .lis dans \\fanny.faiveleytransport.local\splora\o816\fic

le fichier .txt (avec le même nom) dans \\eve.faiveleytransport.local\services\Treso\KTP\Paiements_Qualiac_a_emettre sert pour déclencher le traitement Vtom.

donc j’ai renommé toto.txt en toto.lis \\fanny.faiveleytransport.local\splora\o816\fic
et j’ai copier le fichier toto.txt dans \\eve.faiveleytransport.local\services\Treso\KTP\Paiements_Qualiac_a_emettre Le traitement s’est déclenché.


Start agent Vtom remote

Créer une alarme pour détecter sue l’agent est tombé.

Monter une clé ssh entre wctsrv0011 (Vtom serveur) et le poste client à redémarrer (vldtb04x) pour ne pas avoir à saisir le pwd.

Exécuter le script (qui doit se trouver sur le poste client Vtom) : ssh root@vldtb04x « sh /exploit/scripts/vtom_start_vtom_zabbix.sh »

cat  /exploit/scripts/vtom_start_vtom_zabbix.sh 

#!/bin/bash
# Start agent Vtom
. /opt/vtom/admin/vtom_init.ksh
/opt/vtom/admin/start_client
ps fax |grep bdaemon

# Start agent zabbix
sh /etc/init.d/zabbix_agent_start.sh
#ps fax | grep zabbix

Remplacement de WM_CONCAT par LISTAGG

SELECT mess_val_col1,
       WM_CONCAT(mepj_fichier_nom)     fichiers,
       mess_pers_initiale               resp_envoi,
       mess_dt_envoi                    envoi
  FROM MESSAGE, message_pieces_jointes
 WHERE mess_id = mepj_mess_id(+)
GROUP BY mess_val_col1,
       mess_syta_code,
       mess_pers_initiale,
       mess_dt_envoi
SELECT mess_val_col1,
       fichier,
       mess_pers_initiale               resp_envoi,
       mess_dt_envoi                    envoi
FROM MESSAGE, 
    (SELECT mepj_mess_id, 
            LISTAGG(mepj_fichier_nom, ', ') WITHIN GROUP (ORDER BY mepj_mess_id) AS fichiers
    FROM MESSAGE_PIECES_JOINTES
    GROUP BY mepj_mess_id)
WHERE mess_id = mepj_mess_id(+)
GROUP BY mess_val_col1
        ,mess_syta_code
        ,mess_pers_initiale
        ,mess_dt_envoi
        ,fichiers

Ubuntu 18.04 – Écran inversé sur un HP Pavilion

Mémo pour corriger le problème d’écran inversé sur un HP Pavilion (17-g172nf)

En installant Ubuntu 18.04, l’écran s’est brusquement inversé.
A priori, ce serait causé par l’accéléromètre qui est censé protéger le disque dur à plateau en cas de chute en relevant les têtes de lecture des disques avant l’impact.

Seulement dans mon cas, j’ai installé un SSD. Donc plus besoin de charger le module hp_accell.

Terminer tant bien que mal l’installation en mode la tête à l’envers et rebooter à la fin de l’installation.

Au premier démarrage, lancer le terminal puis la commande suivante : Shell command sudo modprobe -r hp_accel

sudo modprobe -r hp_accel

Puis désactiver le chargement au démarrage.
Ajouter cette ligne dans le fichier /etc/modprobe.d/blacklist.conf : Shell blacklist hp_accel

blacklist hp_accel

Upgrade Ubuntu 17.20 vers 18.04

— upgrade 17.10 vers 18.04.3 LTS

cat /etc/apt/sources.list
cat /etc/issue
uname -a
echo "${XDG_CURRENT_DESKTOP}"
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get update
sudo apt install -f
dpkg --get-selections | grep 'hold$'
find /etc/apt -type f -name '*.list*' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;

sudo do-release-upgrade

La procédure est assez longue, patience.

Partage samba sous Ubuntu

Installer le package cifs-utils

sudo apt-get install cifs-utils

Créer les volumes :

cd /media
sudo mkdir ds_photo ds_videos ds_donnees ds_scan

Créer un fichier /root/.smbcredentials contenant :

username=eric
password=le_mot_de passe_du_compte_nas
domain=DISKSTATION.local

Dans le fichier /etc/fstab ajouter les lignes suivantes à la fin du fichier :
Bien respecter la casse, remplacer les ‘espaces’ pas ‘\040’

//DISKSTATION.local/photo    /media/ds_photo     cifs     _netdev,credentials=/root/.smbcredentials,auto     0     0
//DISKSTATION.local/Videos /media/ds_videos cifs _netdev,credentials=/root/.smbcredentials,auto 0 0
//DISKSTATION.local/Données\040rangées /media/ds_donnees cifs _netdev,credentials=/root/.smbcredentials,auto 0 0
//DISKSTATION.local/scan /media/ds_scan cifs _netdev,credentials=/root/.smbcredentials,auto 0 0

Lancer la commande mount -a pour monter les partages, ensuite ils se monteront automatiquement au démarrage.