Mac OS X : Script pour parser tous les emails de Mail ( format emlx )

75 x served & 13 x viewed

J’ai fait un script ( rapidement, donc un bash et pas du Perl ou du Python) pour parser tous les emails dans Mail, il suffit de mettre ce script sous : /Users/MonLogin/Library/Mail/ .

Le scripts en version V1 :

#!/bin/bash
#
# ARIAS Frederic

compteur=0
erreur=0

chercheFichier() {
   Rep="$1"
   for item in $Rep/*
   do [ -f "$item" ] 
	ext="${item##*.}"
	#echo "$item $ext"
	#if  file -i $item | grep -q text ; then 
		if [ "$ext" = "emlx" ] ; then
			from=`head -40 $item | grep "^From: " | awk -v FS="(<|>)" '{print $2}' | head -1`
		        if [ ! -n "$from" ] ;
				then
				from=`head -40 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
			fi
			date=`head -50 $item | grep "^Date: " | sed 's/Date: //g' | sed 's/.*,//' | head -1`
			if [ ! -n "$date" ] ;
				then
				date=`head -50 $item | grep "^Date: " | head -1`
			fi
			if [ -n "$from" ] ; then
				if [ -n "$date" ] ; then
					compteur=`expr $compteur + 1`			
					echo "$compteur | $from | $date" >> list.txt
					else 
					erreur=`expr $erreur + 1`
					echo "Pas de date : $compteur / $erreur / $from / $item"
					fi
				else 
				erreur=`expr $erreur + 1`
				from=`head -10 $item | grep "^From: " | head -1`
				echo "Pas d'email : $compteur / $erreur / $from / $item"
				fi
			fi
		#fi
      [ -d "$item" ] && chercheFichier "$item"
   done
}
 
[ -d "${1:-.}" ] && chercheFichier ${1:-.}

J’ai fait un test et sur 140.000 emails (en 14 ans) j’ai eu 500 erreurs, le problèmes des erreurs ce sont les emails en binaires. Il faut trouver la bonne limite dans le « head -40 » et « head -50 » afin de n’avoir que l’entête de l’email. Mais le champ « Date » se trouve après le champ « To », qui lors d’un spam est très très long .

A la fin de l’exécution on a une fichier list.txt avec numéro, from, date. Pour le reste il suffit de faire un peu d’Excel :

Les emails c’était 5 heures de travail par jour pour les cadres en 2015 : https://www.usine-digitale.fr/article/les-e-mails-c-est-5-heures-de-travail-par-jour-pour-les-cadres-de-2015.N346564 .

L’idée serait de pouvoir identifié les flux (une cartographie des flux) des emails envoyés et reçus … mais c’est pour la version V2. Et aussi de voir l’évolution des flux dans le temps.

Pour l’instant j’ai trouvé ceci pour les flux : https://rgeomatic.hypotheses.org/415 .

A suivre.

La version V1 bis (moins d’erreur : 200).

#!/bin/bash
# ARIAS Frederic
# Version V1bis
compteur=0
erreur=0

chercheFichier() {
   Rep="$1"
   for item in $Rep/*
   do [ -f "$item" ] 
	ext="${item##*.}"
	#echo "$item $ext"
	#if  file -i $item | grep -q text ; then 
		if [ "$ext" = "emlx" ] ; then
			from=`head -10 $item | grep "^From: " | awk -v FS="(<|>)" '{print $2}' | head -1`
		        if [ ! -n "$from" ] ;
                                then
                                from=`head -40 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
                        fi
			if [ ! -n "$from" ] ;
				then
				from=`head -80 $item | grep "^From: " | awk -v FS='("|")' '{print $2}' | head -1`
			fi
			date=`head -30 $item | grep "^Date: " | sed 's/Date: //g' | sed 's/.*,//' | head -1`
			if [ ! -n "$date" ] ;
				then
				date=`head -70 $item | grep "^Date: " | sed 's/.*,//' | head -1`
			fi
			if [ -n "$from" ] ; then
				if [ -n "$date" ] ; then
					compteur=`expr $compteur + 1`			
					echo "$compteur | $from | $date" >> list.txt
					else 
					erreur=`expr $erreur + 1`
					echo "Pas de date : $compteur / $erreur / $from / $item"
					fi
				else 
				erreur=`expr $erreur + 1`
				from=`head -15 $item | grep "^From: " | head -1`
				echo "Pas d'email : $compteur / $erreur / $from / $item"
				fi
			fi
		#fi
      [ -d "$item" ] && chercheFichier "$item"
   done
}
 
[ -d "${1:-.}" ] && chercheFichier ${1:-.}

echo "Fin du script : $compteur / $erreur "

Installation de LibreOffice sur OSX : vérification de LibreOffice.app

339 x served & 307 x viewed

Le lien pour faire le téléchargement de LibreOffice : https://fr.libreoffice.org/download/libreoffice-stable/ .

Ma version : OX X Yosemite 10.10.5

Quand on lance pour la premier fois on se retrouve avec une fenêtre de vérification :

La première technique est de maintenir le touche CTRL et de faire Ouvrir, mais cela ne marche pas à 100%.

Le mieux est donc de suivre ses étapes :

  • Préférences Système :

  • Sécurité et confidentialité :

  • Général : Déverrouiller et Autoriser « N’importe ou ».

Ensuite on peut refaire l’installation, mais je conseille vivement après le premier lancement de remettre comme c’était avant : « Mac App Store et développeurs identifiés ».

Mac Book Pro : A lire …

En passant

185 x served & 31 x viewed

Il est clair que mon prochain ordinateur ne sera plus un Mac Book Pro :

capture-decran-2016-11-02-a-16-56-17

La qualité oui mais pour ce qui est de la réparabilité c’est clairement non !

Après avoir laissé tombé l’iPhone (pour Android), c’est Mac OS … sniff 😉

Installation un media-center avec OSMC sur un Raspberry Pi 3 Model B

290 x served & 122 x viewed

Le matériel que j’ai utilisé :

L’installation :

  • Allez sur le site pour télécharger le logiciel : https://osmc.tv/download/
  • En fonction de votre OS prendre la bonne version (Pour moi c’es Mac OS en Version Yosemite):

capture-decran-2016-09-30-a-08-08-19

capture-decran-2016-09-22-a-17-28-33

Pour passer ce problème il faut appuyer sur la touche « CTRL » et ouvrir.

capture-decran-2016-09-22-a-17-34-43 capture-decran-2016-09-22-a-17-35-03 capture-decran-2016-09-22-a-17-35-22 capture-decran-2016-09-22-a-17-35-36

Et je me retrouve bloqué sur cette interface car la SD Card n’est pas visible.

capture-decran-2016-09-22-a-17-50-20

Pourtant quand je regarde les logs, j’ai ceci :

jeu. sept. 22 17:53:18 2016 New disk device entry created with entry point /dev/rdisk3, 15.9 GB free space and label
jeu. sept. 22 17:53:18 2016 =================================================
jeu. sept. 22 17:53:18 2016 Starting to parse /dev/rdisk3 for additional info

jeu. sept. 22 17:53:18 2016 MediaName-Line: Device / Media Name: Apple SDXC Reader Media
jeu. sept. 22 17:53:18 2016 Protocol-Line: Protocol: Secure Digital
jeu. sept. 22 17:53:18 2016 Determined Secure Digital as protocol for /dev/rdisk3
jeu. sept. 22 17:53:18 2016 Decided to be a DMG: no
jeu. sept. 22 17:53:18 2016 R/O-Line: Read-Only Media: Yes
jeu. sept. 22 17:53:18 2016 parsed/split/simplified readOnly line would have been: Yes
jeu. sept. 22 17:53:18 2016 Determined Yes as readOnlyMedia for /dev/rdisk3
jeu. sept. 22 17:53:18 2016 Decided to be r/o: yes
jeu. sept. 22 17:53:18 2016 Ejectable-Line: Ejectable: Yes
jeu. sept. 22 17:53:18 2016 Determined Yes as ejactableProperty for /dev/rdisk3
jeu. sept. 22 17:53:18 2016 Decided that /dev/rdisk3 is not writable to us
jeu. sept. 22 17:53:18 2016 Parsed device as NON-writable. NOT Appending.
jeu. sept. 22 17:53:18 2016

jeu. sept. 22 17:53:18 2016 Finished parsing additional info for /dev/rdisk3
jeu. sept. 22 17:53:18 2016 =================================================

Je regarde ce qu’il y a sur la carte SD avec la commande « diskutil list » :

diskutil list
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk3
   1:             Windows_FAT_16 RECOVERY                1.2 GB     disk3s1
   2:                      Linux                         33.6 MB    disk3s5

Je demonte la carte, avec la commande « diskutil unmountDisk » :

#diskutil unmountDisk /dev/disk3
Unmount of all volumes on disk3 was successful

Je regarde les formats pris en charge :

#diskutil listFilesystems
Formattable file systems

These file system personalities can be used for erasing and partitioning.
When specifying a personality as a parameter to a verb, case is not considered.
Certain common aliases (also case-insensitive) are listed below as well.

-------------------------------------------------------------------------------
PERSONALITY                     USER VISIBLE NAME                               
-------------------------------------------------------------------------------
ExFAT                           ExFAT                                           
UFSD_EXTFS                      Extended Filesystem 2                           
UFSD_EXTFS3                     Extended Filesystem 3                           
UFSD_EXTFS4                     Extended Filesystem 4                           
Free Space                      Free Space                                      
  (or) free
MS-DOS                          MS-DOS (FAT)                                    
MS-DOS FAT12                    MS-DOS (FAT12)                                  
MS-DOS FAT16                    MS-DOS (FAT16)                                  
MS-DOS FAT32                    MS-DOS (FAT32)                                  
  (or) fat32
HFS+                            Mac OS Extended                                 
Case-sensitive HFS+             Mac OS Extended (Case-sensitive)                
  (or) hfsx
Case-sensitive Journaled HFS+   Mac OS Extended (Case-sensitive, Journaled)     
  (or) jhfsx
Journaled HFS+                  Mac OS Extended (Journaled)                     
  (or) jhfs+
UFSD_NTFS                       Windows NT Filesystem               
UFSD_NTFSCOMPR                  Windows NT Filesystem (compressed) 

Je télécharge la dernière image : http://download.osmc.tv/installers/diskimages/OSMC_TGT_rbp2_20160910.img.gz

Ensuite :

  • sudo dd bs=1m if=~/Downloads/OSMC_TGT_rbp2_20160910.img of=/dev/rdisk6
  • sudo dd bs=1m if=~/Downloads/OSMC_TGT_rbp2_20160910.img of=/dev/disk6

Deux erreurs : « Permission denied » avec deux cartes SD différentes.

Je choisi de changer de Mac et d’essayer avec une version Mac OS El Captain :

capture-decran-2016-09-30-a-07-59-25

Cela part bien car le formatage de la SD Card est possible :

capture-decran-2016-09-30-a-07-58-41

Je tente à nouveau l’installation en mode graphique, et cela fonctionne. Visiblement Yosemite a du mal a écrire sur les cartes micro-SD.

Avec El Capitan :

capture-decran-2016-09-30-a-08-37-04 capture-decran-2016-09-30-a-08-37-18 capture-decran-2016-09-30-a-09-04-04

Maintenant il va falloir faire le test, mais avant je regarde les formats pris en charge par El Capitan :

$ diskutil listFilesystems
Formattable file systems

These file system personalities can be used for erasing and partitioning.
When specifying a personality as a parameter to a verb, case is not considered.
Certain common aliases (also case-insensitive) are listed below as well.

-------------------------------------------------------------------------------
PERSONALITY                     USER VISIBLE NAME                               
-------------------------------------------------------------------------------
ExFAT                           ExFAT                                           
Free Space                      Free Space                                      
  (or) free
MS-DOS                          MS-DOS (FAT)                                    
MS-DOS FAT12                    MS-DOS (FAT12)                                  
MS-DOS FAT16                    MS-DOS (FAT16)                                  
MS-DOS FAT32                    MS-DOS (FAT32)                                  
  (or) fat32
HFS+                            Mac OS Extended                                 
Case-sensitive HFS+             Mac OS Extended (Case-sensitive)                
  (or) hfsx
Case-sensitive Journaled HFS+   Mac OS Extended (Case-sensitive, Journaled)     
  (or) jhfsx
Journaled HFS+                  Mac OS Extended (Journaled)                     
  (or) jhfs+

J’ai du mal à comprendre pourquoi la carte microSD ne pouvait être que lu sur Yosemite.

Mac OS : Migration de Yosemite vers El Capitan

207 x served & 138 x viewed

Normalement un message s’affiche pour indiquer que la migration va prendre 35 minutes, en réalité c’est largement plus. Si je regarde le fichier /var/log/install.log (pas de fichier : /Library/Logs/SystemMigration.log )

Sep 30 09:06:04 InstallAssistant[1969]: @(#)PROGRAM:Install  PROJECT:Install-924.1
Sep 30 09:06:04 InstallAssistant[1969]: @(#)PROGRAM:IA  PROJECT:InstallAssistant-532
Sep 30 09:06:04 InstallAssistant[1969]: Hardware: MacBookPro9,1 @ 2.30 GHz (x 8), 8192 MB RAM
Sep 30 09:06:04 InstallAssistant[1969]: Running OS Build: Mac OS X 10.10.5 (14F1912)
...
Sep 30 09:06:07 InstallAssistant[1969]: Using distribution archive from /Applications/Install OS X El Capitan.app/Contents/SharedSupport/OSInstall.mpkg
...
Sep 30 12:45:35 systemmigrationd[273]: Connected to daemon. Language set to: French
Sep 30 12:45:35 systemmigrationd[273]: Request: State change: "Awaiting Reboot" -> "Post-Reboot"
Sep 30 12:45:35 systemmigrationd[273]: Progress Status: Reprise de la migration…
Sep 30 12:45:35 systemmigrationd[273]: Engine: Startup: Entering post-reboot phase.
Sep 30 12:45:35 systemmigrationd[273]: Engine: Startup: Waiting for source and target systems to be available.
...
Sep 30 12:48:02 softwareupdated[255]: 9 updates found:
        031-04978        | CoreLSKD Configuration Data 8
        031-25201        | Mise à jour des logiciels d’imprimantes EPSON 3.2
        031-56720        | Incompatible Kernel Extension Configuration Data 3.30.1
        031-63178        | Mise à jour d’OS X El Capitan 10.11.6
        031-70458        | MÀJ de la compatibilité avec le format RAW des appareils photo numériques 6.21
        031-74368        | Chinese Word List Update 4.22
        031-75837        | Core Suggestions Configuration Data 766
        031-81733        | MRT Configuration Data 1.10
        031-81734        | XProtectPlistConfigData 1.0
...
Sep 30 12:49:04 system_installd[469]: PackageKit: Removing client PKInstallDaemonClient pid=255, uid=200 (/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated)
Sep 30 12:49:04 installd[323]: PackageKit: Removing client PKInstallDaemonClient pid=255, uid=200 (/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated)
...
Sep 30 13:35:50  systemmigrationd[273]: Done rebuilding XPC Cache.
Sep 30 13:35:50  systemmigrationd[273]: Migration took 3014.721375 seconds long.
Sep 30 13:35:50  systemmigrationd[273]: Migration copied 718.80 MB of 718.80 MB at a rate of 0.24 MB/s overall
Sep 30 13:35:50  systemmigrationd[273]: Time since reporting one minute remaining: 3004.303797
Sep 30 13:35:50  systemmigrationd[273]: Migration is releasing Time Machine and Spotlight indexing, idle sleep
Sep 30 13:35:50  systemmigrationd[273]: Allowing machine sleep.
Sep 30 13:35:50  systemmigrationd[273]: Request: State change: "Post-Reboot" -> "Done"
Sep 30 13:35:50  systemmigrationd[273]:  ** Migration is reporting 0 errors and warnings : (
...
Sep 30 15:07:10 softwareupdated[255]: 3 updates found:
        031-25201        | Mise à jour des logiciels d’imprimantes EPSON 3.2
        031-63178        | Mise à jour d’OS X El Capitan 10.11.6
        031-70458        | MÀJ de la compatibilité avec le format RAW des appareils photo numériques 6.21

Pour être exact cela a pris 4h29 à la place de 0h35 minutes annoncées. Ah , si le temps pouvait se suspendre comme une installation de Mac !

Voici donc les deux versions :

  • Avant : Yosemitecapture-decran-2016-09-30-a-08-08-19
  • Après : El Capitancapture-decran-2016-09-30-a-15-07-38

A la fin de la migration on a des fenêtres qui nous indiquent que certains logiciels ne sont pas très sécurisés :

capture-decran-2016-09-30-a-14-38-48 capture-decran-2016-09-30-a-14-39-07

Ah … si Apple pouvait distribuer « Android File Transfer Agent » 🙂 . L’iPhone étant bien trop cher, mais le plus pénible c’est qu’il n’est pas possible de mettre de SD Card. On se trouve alors dans l’obligatoire de prendre une version 64 Go qui est hors de prix.

Et dès que l’on lance l’email on a droit a plus de 1h de migration :

capture-decran-2016-09-30-a-14-42-05

Je pense que cela dépend de la taille des boites mails, pour savoir la taille :

$ du -sh Library/Mail/*
428K	Library/Mail/Bundles
 52K	Library/Mail/V2
9,7G	Library/Mail/V3

Après cette étape le Mac reste difficilement accessible pendant au moins 3h, pour de « l’optimisation ».

Conclusion, pour la migration il est préférable de compter 24h.