Aller au contenu


Nettoyage des ics dans les agendas zimbra


  • Veuillez vous connecter pour répondre
9 réponses à ce sujet

#1 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 01 septembre 2016 - 15:59

Bonjour

Je viens de migrer un utilisateur vers Zimbra 8.

Les événement importés n'ont pas tous le même organisateur.
En effet l'utilisateur avait changé plusieurs fois d'adresses email sur l'ancien système caldav (non zimbra).

Est-il possible de lancer un traitement dans les boites sa boite Zimbra pour que, dans tous ses ics, remplacer xyz@domain.com par abc@domain.com ?

Victor
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6

#2 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 01 septembre 2016 - 16:32

Le plus simple serait d'exporter l'intégralité du calendrier en question, faire un coup de sed, supprimer l'ancien calendrier et réimporter l'ics.
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr

#3 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 01 septembre 2016 - 17:49

Oui c'est mon plan B :)

L'utilisateur en question a 600 ics.

je vois bien un script bash :

1. export de /Calendar en tgz avec zmmailbox : /opt/zimbra/bin/zmmailbox -z -m abc@domain.com getRestURL "/Calendar/?fmt=tgz" > /tmp/account-calendar.tgz

2. extraction dans un dossier des fichiers ics

3. sed sur organizer: email du genre : sed -i s/"^Organizer: xyz@domain.com"/"Organizer: abc@domain.com"/g ./*.ics ( va peut être falloir faire de la regexp :P  )

4. re-compression du tgz avec les fichiers modifiés

5. import du tgz avec zmmailbox dans le dossier /Calendar
/opt/zimbra/bin/zmmailbox -z -m abc@domain.com postRestURL "/?fmt=tgz&resolve=action" /tmp/account-calendar.tgz

Mais faut-il utiliser replace ou modify ou encore reset ? J'aimerais garder le même ID tant qu'à faire ...

Quote

“skip” ignores duplicates of old items, it’s also the default conflict-resolution.
“modify” changes old items.
“reset” will delete the old subfolder (or entire mailbox if /).
“replace” will delete and re-enter them.

‘Reset’ will be a bit faster on an empty destination mailbox because it skips most dupe checks.


Victor
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6

#4 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 02 septembre 2016 - 08:13

Je voterais pour modify
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr

#5 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 02 septembre 2016 - 08:48

Le sed n'est pas simple parce qu'il y a des emails dans l'export, et les adresses emails peuvent être sur plusieurs lignes dans les entête d'email (avec le folding et la limite de la longueur des lignes).

Par exemple il peut y avoir l'adresse p.nom@entreprise.fr sur trois lignes :

nOrganisation : \\tMON ENTREPRISE\nPour : \\tPrénom Nom <p.nom@entre=
pr
ise.fr>\, Prénom2 Nom2 <p.nom2@entreprise.fr>\, etc
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6

#6 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 02 septembre 2016 - 09:19

Je croyais que tu voulais changer juste le champ Organisateur ?
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr

#7 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 02 septembre 2016 - 11:24

Oui puis je me suis dit autant modifier toutes les références.

Mais ce n'est pas forcement utile, ces cas spéciaux sont dans les fichiers .meta donc je vais essayer de rester sur les ics (fichiers .appt).
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6

#8 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 02 septembre 2016 - 12:46

Mon script bash pour modifier les ics du calendrier principal d'un utilisateur Zimbra :

export zmAccout="newaccount@entreprise.net"
export sedAvant="ORGANIZER:mailto:old@entreprise.net"
export metaAv="a18:old@entreprise.net"
export metaAp="a25:newaccount@entreprise.net"
export sedApres="ORGANIZER:mailto:$zmAccout"

WDIR=`mktemp -d`
cd $WDIR || exit 2
clear

# 1. export de /Calendar en tgz avec zmmailbox : /opt/zimbra/bin/zmmailbox -z -m abc@domain.com getRestURL "/Calendar/?fmt=tgz" > /tmp/account-calendar.tgz
/opt/zimbra/bin/zmmailbox -z -m ${zmAccout} getRestURL "/Calendar/?fmt=tgz" > ${WDIR}/account-calendar.tgz

# 2. extraction dans un dossier des fichiers ics
tar -xzf ./account-calendar.tgz
rm -f ./account-calendar.tgz

# 3. sed sur les ics puis le metadata (avec changement de la taille de la chaine)
find $WDIR -type f -name "*.appt" -exec sed -i s/"${sedAvant}"/"${sedApres}"/g {} \;
find $WDIR -type f -name "*.meta" -exec sed -i s/"${metaAv}"/"${metaAp}"/g {} \;
echo $WDIR

cp -rf $WDIR /tmp/apres

# 4. re-compression du tgz avec les fichiers modifiés
cd $WDIR
tar -czf /tmp/account-calendar.tgz ./
cd /tmp
rm -rf $WDIR

# 5. import du tgz avec zmmailbox dans le dossier /Calendar
/opt/zimbra/bin/zmmailbox -z -m ${zmAccout} postRestURL "/Calendar/?fmt=tgz&resolve=replace" /tmp/account-calendar.tgz
EX_CODE=$?
echo "zmmailbox a retourne : $EX_CODE"


Remarque : il faut bien faire "replace" et non pas "modify" sinon il y a une exception : Changing ORGANIZER of an appointment is not allowed
Sur les evt récurents il peut y avoir un message "blob empty" mais c'est sans effet selon moi

Victor
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6

#9 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 02 septembre 2016 - 13:06

Bien joué.
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr

#10 vdagost

vdagost

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 530 messages
  • LocalisationLyon

Posté 30 novembre 2016 - 07:42

Pour faire suite à l'étude de ce comportement.

Zimbra n'accepte pour les calendrier d'un compte user@domain.com que user@domain.com comme ORGANIZER.
Il ne permet pas de changer d'organisateur et il faut utiliser le sentBy pour préciser un éventuel utilisateur en délégation.

Si on importe dans Zimbra des ics avec un organisateur autre alors il en résulte que le propriétaire avant migration de l'événement ne pourra plus modifier cet événement (car il n'est pas l'organisateur) mais il pourra le supprimer (car il a un accès en écriture au calendrier) et le recréer correctement.

A noter qu'un événement crée en caldav avec un mauvais organizer est remplacé par Zimbra avec le bon organizer (le propriétaire du compte).

Victor
Zimbra 8.8.8 p2 OSS + Zextras
11000 utilisateurs (10 stores)
RHEL 6




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)