Outils pour utilisateurs

Outils du site


doc:formations:hebergement:service:mattermost:scripts

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:formations:hebergement:service:mattermost:scripts [2022/09/27 07:26] jeremiedoc:formations:hebergement:service:mattermost:scripts [2023/10/25 13:25] (Version actuelle) – [Convertir une discussion privée en canal d'une équipe] jeremie
Ligne 1: Ligne 1:
 +Cf [[doc:formations:hebergement:service:mattermost|Mattermost]].
 +
 ====== Scripts mattermost avancés ====== ====== Scripts mattermost avancés ======
  
 +===== Liste complète des utilisateurs, canaux et équipes  =====
 +
 +La façon la plus simple d'obtenir ces informations semble être de passer via SQL directement:
 +
 +<code bash>
 +  mysql --database mattermost -e 'SELECT DISTINCT u.Username, t.DisplayName AS TeamName, c.DisplayName AS ChannelName, cm.SchemeUser AS User, cm.SchemeAdmin AS Admin FROM ChannelMembers AS cm JOIN Channels AS c ON (cm.ChannelId=c.Id) JOIN Users AS u ON (cm.UserId=u.Id) JOIN Teams AS t ON (c.TeamId=t.Id);'
 +</code>
 ===== Derniers utilisateurs actifs sur Mattermost ===== ===== Derniers utilisateurs actifs sur Mattermost =====
  
-Cf [[doc:formations:hebergement:service:mattermost|Mattermost]]. 
  
-Pour lister les dernières sessions des utilisateurs:+Pour lister les dernières sessions des utilisateurs via MySQL:
  
-<code>+<code bash>
 cat << EOF | mysql -u root --database mattermost cat << EOF | mysql -u root --database mattermost
 SELECT SELECT
Ligne 22: Ligne 30:
 </code> </code>
  
 +===== Convertir une discussion privée en canal d'une équipe =====
 +
 +Le plus sûr pour l'identifier est d'abord de nommer votre discussion privée, ex. ici ''Discussion specs serveur''.
 +
 +<code SQL>
 +mysql> USE mattermost;
 +mysql> SELECT c.Id AS ChannelId, u.Id AS UserId, u.UserName AS UserName
 +       FROM Users AS u
 +       JOIN ChannelMembers AS cm ON u.Id = cm.UserId
 +       JOIN Channels AS c ON c.Id = cm.ChannelId
 +       WHERE c.Header = 'Discussion specs serveur';
 +</code>
 +
 +:!: choisissez l'utilisateur de la discussion qui sera considéré comme le créateur de la future équipe (ex. ''uq95bsjuhbdutm8i6atc1gyaew''), et repérez l'identifiant du canal (ex. ''uu36uoikn7d8jrqy6pmpnnyyae'').
 +
 +Puis transformez la discussion en un canal privé nommé ''Specifications serveur'' dans l'équipe ''Equipe sysadmin'':
 +<code SQL>
 +mysql> UPDATE Channels SET
 +         Type = 'P',
 +         CreatorId = 'uq95bsjuhbdutm8i6atc1gyaew',
 +         TeamId = (SELECT Id AS TeamId FROM Teams WHERE DisplayName = 'Equipe sysadmin'),
 +         Name = 'server-specs',
 +         DisplayName = 'Specifications serveur'
 +       WHERE Id = 'uu36uoikn7d8jrqy6pmpnnyyae';
 +</code>
 ===== Réduire les images stockées ===== ===== Réduire les images stockées =====
  
Ligne 28: Ligne 61:
   cd /opt/mattermost/data   cd /opt/mattermost/data
   MS=1600   MS=1600
-  find . -name '*.jpg' -exec identify -format '%w %h %i\n' {} \; 2>/dev/null | awk '$1 > '$MS' || $2 > '$MS' {sub(/^[^ ]* [^ ]* /, ""); print}' | tr '\n' '\0' | xargs -0 mogrify -resize "${MS}x${MS}"+  find . -name '*.jpg' -exec identify -format '%w %h %i\n' {} \; 2>/dev/null | 
 +    awk '$1 > '$MS' || $2 > '$MS' {sub(/^[^ ]* [^ ]* /, ""); print}' | 
 +    tr '\n' '\0' | xargs -0 mogrify -resize "${MS}x${MS}"
  
 +===== Réduire le volume stocké en éliminant les vieux fichiers attachés =====
 +
 +En fait, pour éviter de casser la base de donnée, on les remplace par un lien symbolique vers vers un fichier quasiment vide.
 +
 +<code bash>
 +#!/bin/bash
 +OLDESTFILES='-30 days'
 +EMPTYTARGET='/opt/mattermost/deleted_file.txt'
 +MAXSIZE='500k'
 +
 +if [[ "$USER" == 'root' ]]; then
 + runuser -u mattermost -g mattermost "$0"
 + exit
 +fi
 +
 +echo "Fichier retiré" > "$EMPTYTARGET"
 +oldestok=$(date --date="$OLDESTFILES" +%s)
 +
 +while IFS= read -r -d $'\0' line; do
 + d=${line%%.*}
 + if (( $d < $oldestok)); then
 + cut -d' ' -f2- <<< "$line"
 + fn=$(cut -d' ' -f6- <<< "$line")
 + ln -sf "$EMPTYTARGET" "$fn"
 + fi
 +done < <( find /opt/mattermost/data -type f -size "+$MAXSIZE" -path '**/202[0-9]*/**' -printf "%A@ %TY-%Tm-%Td %TH:%TM (%k KO) %p\0" | sort -z )
 +</code>
 ===== Comptes Jitsi à partir de comptes Mattermost ===== ===== Comptes Jitsi à partir de comptes Mattermost =====
  
Ligne 36: Ligne 98:
 Pour créer des utilisateurs jitsi à partir des pseudo des utilisateurs mattermost (le mot de passe est le même pour tout le monde!) Pour créer des utilisateurs jitsi à partir des pseudo des utilisateurs mattermost (le mot de passe est le même pour tout le monde!)
  
-<code>+<code bash>
 #!/bin/bash #!/bin/bash
 set -e set -e
doc/formations/hebergement/service/mattermost/scripts.1664263600.txt.gz · Dernière modification : 2022/09/27 07:26 de jeremie