macOS : Redémarrer son Mac depuis le Terminal

Pour redémarrer votre Mac à l’aide du terminal, vous pouvez utiliser la commande sudo shutdown -r now. Cette commande va redémarrer votre ordinateur immédiatement.

Voici les étapes à suivre :

  1. Ouvrez le terminal en appuyant sur Commande + Espace et en tapant Terminal.
  2. Tapez la commande sudo shutdown -r now et appuyez sur Entrée.
  3. Saisissez votre mot de passe administrateur lorsque vous y êtes invité et appuyez sur Entrée.
  4. Attendez que votre ordinateur redémarre.

Remarque : la commande sudo permet de lancer la commande en tant qu’administrateur, ce qui est nécessaire pour redémarrer l’ordinateur. Shutdown est la commande pour arrêter ou redémarrer l’ordinateur, tandis que -r indique de redémarrer l’ordinateur et now indique de le faire immédiatement.

Bon redémarrage !

Vous avez une question, une idée ou une remarque ?
Je serai ravi de vous lire !
✉️ henrido@hdrapin.com

macOS : sauvegarder automatiquement un dossier modifié avec un script Shell

Voici comment vous pouvez créer un script shell sur macOS qui sauvegarde automatiquement un dossier qui a été modifié :

  1. Ouvrez l’application Terminal, qui se trouve dans le dossier Utilitaires de votre ordinateur.
  2. Créez un nouveau script shell en utilisant votre éditeur de texte préféré. Par exemple, vous pouvez utiliser nano pour créer un nouveau fichier nommé « backup.sh » en utilisant la commande suivante :
nano backup.sh
  1. Dans le fichier, tapez les commandes suivantes pour définir le dossier à sauvegarder et le dossier de sauvegarde :
# Définissez le dossier à sauvegarder SOURCE="/chemin/vers/dossier/à/sauvegarder"

# Définissez le dossier de sauvegarde DESTINATION="/chemin/vers/dossier/de/sauvegarde"
  1. Ajoutez une commande pour vérifier si le dossier a été modifié depuis la dernière sauvegarde. Vous pouvez utiliser la commande « find » pour vérifier si le dossier contient des fichiers modifiés depuis la dernière sauvegarde :
# Vérifiez si le dossier a été modifié 
MODIFIED=$(find $SOURCE -mtime -1)
  1. Si le dossier a été modifié, ajoutez une commande pour copier le dossier vers le dossier de sauvegarde en utilisant la commande « cp » :
# Si le dossier a été modifié, copiez-le vers le dossier de sauvegarde 
if [ -n "$MODIFIED" ]; then cp -R $SOURCE $DESTINATION fi
  1. Enregistrez et fermez le fichier.
  2. Rendez le script exécutable en utilisant la commande suivante :
chmod +x backup.sh
  1. Pour exécuter le script de sauvegarde automatique, utilisez la commande suivante :
./backup.sh

Ce script vérifiera si le dossier a été modifié depuis la dernière sauvegarde et, si c’est le cas, copiera le dossier modifié dans le dossier de sauvegarde. Vous pouvez également planifier l’exécution de ce script à intervalles réguliers en utilisant l’outil de planification de tâches de macOS, cron.

Je suis là pour vous aider si vous avez besoin de plus d’aide pour créer ce script ou si vous avez des questions sur l’utilisation de commandes shell spécifiques n’hésitez pas !

HD Rapin

Comparer les sauvegardes Time Machine

Pour comparer deux sauvegardes Time Machine sur macOS en utilisant le Terminal, vous pouvez utiliser la commande tmutil, qui permet de manipuler les sauvegardes Time Machine. Voici une méthode simple pour comparer les différences entre deux sauvegardes :

1. Montez les sauvegardes Time Machine

Assurez-vous que les deux sauvegardes que vous souhaitez comparer sont accessibles, par exemple sur un disque externe ou un serveur réseau.

2. Utilisez tmutil compare

La commande tmutil compare vous permet de comparer deux points de sauvegarde et d’afficher les différences.

Ouvrez le Terminal, puis utilisez la commande suivante pour comparer deux sauvegardes spécifiques :

sudo tmutil compare /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS

Remplacez VOTRE_DISQUE par le nom de votre disque Time Machine, MacintoshHD par le nom de votre Mac (ou celui de la sauvegarde), et YYYY-MM-DD-HHMMSS par les dates et heures exactes des sauvegardes à comparer.

3. Affiner les résultats

Pour obtenir des résultats plus précis, vous pouvez ajouter des options pour tmutil compare. Par exemple :

--only-changes pour afficher uniquement les fichiers qui ont été modifiés, ajoutés ou supprimés.
--exclude pour exclure certains dossiers ou fichiers spécifiques.

Exemple avec options :

sudo tmutil compare /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS /Volumes/VOTRE_DISQUE/Backups.backupdb/MacintoshHD/YYYY-MM-DD-HHMMSS --only-changes

4. Interpréter les résultats

Le Terminal affichera les fichiers ou dossiers qui ont été modifiés, supprimés ou ajoutés entre les deux sauvegardes.

Cette méthode est puissante et vous permet de voir les différences de manière détaillée entre deux états de sauvegarde Time Machine.

HDR

macOS : Scanner les ports d’une adresses IP

Pour scanner les adresses IP dans le shell sous macOS, vous pouvez utiliser la commande nmap. Cette commande permet de scanner les ports d’un ordinateur ou d’un réseau et de déterminer les services qui y sont exécutés. ( Suivi ce post pour installer la commande map )

Voici comment utiliser la commande nmap pour scanner les adresses IP d’un réseau :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande nmap, suivie de l’adresse IP du réseau que vous souhaitez scanner et du masque de sous-réseau. Par exemple, pour scanner le réseau 192.168.1.0/24, vous pouvez utiliser la commande suivante :
nmap 192.168.1.0/24
  1. Appuyez sur la touche Entrée pour lancer le scan. nmap va alors analyser chaque adresse IP du réseau et afficher les résultats du scan.

Il existe de nombreuses options et paramètres que vous pouvez utiliser avec la commande nmap pour personnaliser le scan. Par exemple, vous pouvez utiliser l’option -p pour spécifier les ports que vous souhaitez scanner, ou l’option -sS pour utiliser un scan TCP SYN discret. Pour plus d’informations sur les différentes options et paramètres disponibles, vous pouvez consulter la documentation en ligne en tapant man nmap dans le Terminal.

Variante placer le résultat dans un fichier Texte :

Voici comment utiliser la commande nmap et tee pour scanner les adresses IP d’un réseau et enregistrer les résultats dans un fichier texte :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande nmap, suivie de l’adresse IP du réseau que vous souhaitez scanner et du masque de sous-réseau. Ensuite, ajoutez la commande tee et le nom du fichier texte dans lequel vous souhaitez enregistrer les résultats. Par exemple, pour scanner le réseau 192.168.1.0/24 et enregistrer les résultats dans un fichier texte nommé « results.txt », vous pouvez utiliser la commande suivante :
nmap 192.168.1.0/24 | tee results.txt
  1. Appuyez sur la touche Entrée pour lancer le scan. nmap va alors analyser chaque adresse IP du réseau et afficher les résultats du scan dans le Terminal tout en les enregistrant dans le fichier « results.txt ».

macOS : tester la connexion Bluetooth avec le Terminal

Voici comment tester le Bluetooth sur votre Mac en utilisant le Terminal :

  1. Ouvrez le Terminal en allant dans le dossier « Utilitaires » de votre dossier « Applications ».
  2. Tapez la commande suivante et appuyez sur « Entrée » :
system_profiler SPBluetoothDataType
  1. Le Terminal affichera alors une liste des appareils Bluetooth connectés à votre Mac et de leurs caractéristiques, ainsi que des informations sur la configuration Bluetooth de votre Mac. Si vous ne voyez pas votre appareil Bluetooth dans la liste, cela signifie qu’il n’est pas correctement connecté ou qu’il y a un problème de compatibilité.
  2. Les appareils connectés sont places dans la section : Connected et ceux référencés mais non connectés dans la section : Not Connected.
  1. Si vous voulez vérifier la version du logiciel Bluetooth de votre Mac, vous pouvez utiliser la commande suivante :
system_profiler SPBluetoothDataType | grep "Firmware Version:"

Cette commande affichera la version du logiciel Bluetooth de votre Mac (premiere ligne) ainsi que des autres appareils (lignes suivantes). Si vous avez des problèmes de compatibilité avec un appareil Bluetooth, vous devriez vérifier que vous avez la version la plus récente du logiciel Bluetooth et mettre à jour si nécessaire.

macOS : générer un rapport SYSDIAGNOSE

Pour obtenir un rapport de sécurité / diagnostique sur votre Mac, vous pouvez utiliser la commande sysdiagnose dans le terminal. Cette commande va créer un fichier de rapport qui contient des informations détaillées sur votre système, y compris des informations sur les fichiers de journal, les préférences du système, les configurations réseau et les ressources du système.

Pour utiliser sysdiagnose, ouvrez le terminal (que vous pouvez trouver dans le dossier « Utilitaires » de votre application « Applications ») et tapez la commande suivante :

sysdiagnose -f rapport.tar.gz

Cela va créer un fichier de rapport nommé « rapport.tar.gz » dans le répertoire courant du terminal. Vous pouvez utiliser un utilitaire de décompression comme « Tar » ou « The Unarchiver » pour ouvrir et consulter les fichiers contenus dans ce fichier de rapport.

Il existe également d’autres outils de diagnostic disponibles sur votre Mac, tels que « Console » et « Météo », qui peuvent vous aider à obtenir des informations détaillées sur votre système et à détecter des problèmes potentiels. Vous pouvez trouver ces outils dans le dossier « Utilitaires » de votre application « Applications ».

Lire le fichier Sysdiagnose :

Pour lire un fichier de rapport généré par la commande sysdiagnose sur votre Mac, vous devez d’abord le décompresser. Le fichier de rapport généré par sysdiagnose est au format « tar.gz », qui est un format de fichier compressé utilisant l’algorithme de compression « gzip » et le logiciel de gestion de fichiers « tar ».

Pour décompresser le fichier de rapport, vous pouvez utiliser un utilitaire de décompression comme « Tar » ou « The Unarchiver ». Téléchargez et installez l’un de ces utilitaires, puis faites glisser le fichier de rapport sur l’icône de l’utilitaire pour décompresser le fichier. Cela va créer un dossier qui contient tous les fichiers inclus dans le rapport.

Une fois le fichier de rapport décompressé, vous pouvez consulter les différents fichiers inclus dans le dossier. Le fichier de rapport comprend des informations détaillées sur votre système, y compris des fichiers de journal, des préférences du système, des configurations réseau et des ressources du système. Vous pouvez ouvrir ces fichiers à l’aide d’un éditeur de texte ou d’un utilitaire de visualisation de fichiers de journal, selon le type de fichier que vous souhaitez consulter.

Exemple : les informations des préférences systèmes

Les informations de préférences système comprennent tous les réglages et les préférences que vous avez configurés sur votre Mac, ainsi que les réglages par défaut du système. Elles incluent des informations sur l’apparence et le comportement de votre Mac, ainsi que sur les applications et les services installés sur votre système.

Voici quelques exemples d’informations de préférences système qui peuvent être incluses dans un rapport généré par la commande sysdiagnose sur votre Mac :

  • Réglages de l’interface utilisateur, tels que la couleur et la police de l’interface utilisateur, la disposition du Dock et du Finder, et les paramètres de notification
  • Réglages de sécurité, tels que les paramètres de mot de passe et les paramètres de pare-feu
  • Réglages de réseau, tels que les paramètres de connexion WiFi et Ethernet, et les paramètres de partage de fichiers
  • Réglages de l’application Mail, tels que les comptes de messagerie configurés et les paramètres de filtrage de spam
  • Réglages des applications installées sur votre système, tels que les paramètres de l’application de traitement de texte et les préférences de l’application de navigation web

Pour aller plus loin sur le sujet : https://eclecticlight.co/2016/02/06/the-ultimate-diagnostic-tool-sysdiagnose/

(source eclecticlight) Parmi les outils qui ont été exécutés, et dont la sortie a été collectée pour vous, se trouvent :

  • Ps, qui répertorie des informations sur tous les processus en cours d’exécution actuellement, et sa variante sensible au thread
  • Fs_usage, qui signale les appels système et les défauts de page liés à l’activité du système de fichiers
  • Spindump, qui profile l’ensemble de votre système pendant une période
  • Vm_stat, qui montre les statistiques de mémoire virtuelle Mach
  • Top, qui affiche des informations triées sur tous les processus en cours d’exécution actuellement
  • Powermetrics, qui montre les statistiques d’utilisation du processeur
  • Lsof, qui répertorie les détails de tous les fichiers ouverts
  • Empreinte, qui donne des informations de mémoire sur les processus
  • Vmmap et tas sur le(s) processus(s) utilisant de grandes quantités de mémoire, montrant leur mémoire virtuelle et leurs allocations de tas
  • Diskutil, vérification des lecteurs montés
  • Gpt, détaillant les tableaux de partition GUID
  • Hdiutil, vérification des images de disque montées
  • BootCacheControl, vérification des caches utilisés lors du démarrage
  • Df, vérification de l’espace libre sur le disque
  • Monter, vérifier les systèmes de fichiers montés
  • Netstat, donnant l’état détaillé du réseau
  • Ifconfig, détaillant les interfaces réseau
  • Ipconfig, détaillant la configuration IP
  • Scutil, vérification de la configuration du système
  • Creuser, vérifier la recherche du service de nom (DNS)
  • Pmset, détaillant les paramètres de gestion de l’alimentation
  • System_profiler, qui compile un profil système complet tout comme l’application System Profiler
  • Ioreg, donne des détails sur tous les périphériques d’entrée et de sortie enregistrés avec le kit d’E/S.

Décompressés, ses rapports occuperont généralement plus de 200 Mo avec plus de 1500 fichiers et dossiers. La compétence consiste maintenant à savoir où chercher et comment interpréter ses résultats.

HD Rapin

macOS : Exporter les contacts avec Applescript

Voici comment utiliser AppleScript pour exporter les contacts de l’application Contacts :

  1. Ouvrez l’application Script Editor sur votre Mac.
  2. Copiez et collez le code suivant dans la fenêtre de script :
tell application "Contacts" 
set allContacts to every person
repeat with aContact inallContacts
set contactName to name of aContact 
log contactName 
end repeat 
end tell
  1. Cliquez sur « Exécuter » pour exécuter le script.

Le script va parcourir chaque contact dans l’application Contacts et afficher le nom de chaque contact dans la fenêtre de journal. Vous pouvez modifier le script pour afficher d’autres informations sur les contacts, comme leur adresse électronique ou leur numéro de téléphone, en utilisant les propriétés appropriées de l’objet « person » dans l’application Contacts.

Par exemple, pour afficher l’adresse électronique de chaque contact, vous pouvez utiliser la propriété « email » de l’objet « person » comme ceci :

tell application "Contacts" 
set allContacts to every person 
repeat with aContact inallContacts 
set contactName to name of aContact 
set contactEmail to email of aContact 
log contactName & ": " & contactEmail 
end repeat 
end tell

Je vous recommande de consulter la documentation de l’application Contacts pour obtenir une liste complète des propriétés et méthodes disponibles pour travailler avec des contacts dans AppleScript.

macOS : Scanner un range d’IP avec AppleScript et Python

AppleScript n’est pas mort 😉 . Vous pouvez utiliser AppleScript pour envoyer des requêtes « ping » à une plage d’adresses IP sur macOS. Voici un exemple de script qui effectue cette tâche :

-- Définissez la plage d'adresses IP à laquelle envoyer des requêtes ping 
set ipRange to {"192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"} 

-- Pour chaque adresse IP dans la plage 
repeat with anIP in ipRange 

-- Envoyez une requête ping à l'adresse IP 
set pingResult to do shell script "ping -c 1 " & anIP 

-- Affichez le résultat de la requête 
ping display dialog pingResult buttons {"OK"} end repeat

Ce script envoie une requête ping à chaque adresse IP dans la liste ipRange, et affiche le résultat de chaque requête dans une boîte de dialogue. Vous pouvez remplacer la liste ipRange par la plage d’adresses IP que vous souhaitez utiliser.

import subprocess 

# Définissez la plage d'adresses IP à laquelle envoyer des requêtes ping ip_range =["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4"] 

# Pour chaque adresse IP dans la plage 
for an_ip in ip_range: 

# Envoyez une requête ping à l'adresse IP 
ping_result = subprocess.run(["ping", "-c", "1", an_ip], capture_output=True) 

# Affichez le résultat de la requête ping
print(ping_result.stdout.decode())

Ce code utilise la fonction subprocess.run() de Python pour envoyer une requête ping à chaque adresse IP dans la liste ip_range, et affiche le résultat de chaque requête dans la console. Vous pouvez remplacer la liste ip_range par la plage d’adresses IP que vous souhaitez utiliser.

HDR

macOS : Modifier le Shell par défaut

Pour modifier le programme de démarrage par défaut sur macOS, vous pouvez utiliser la commande « chsh » (change shell). Voici comment procéder :

  1. Ouvrez un terminal.
  2. Saisissez la commande suivante et appuyez sur Entrée :
csh 
  1. Saisissez votre mot de passe et appuyez sur Entrée.
  2. Saisissez le chemin complet vers le shell souhaité. Par exemple, pour utiliser zsh comme shell par défaut, vous pouvez saisir :
/bin/zsh
  1. Appuyez sur Entrée pour enregistrer les modifications.

Notez que vous devrez redémarrer votre ordinateur pour que les changements prennent effet. Il existe également d’autres méthodes pour changer le shell par défaut sur macOS, comme en utilisant le gestionnaire de comptes utilisateur ou en modifiant directement le fichier /etc/shells. Cependant, la méthode ci-dessus est généralement la plus simple.

macOS : Modifier le mode d’alimentation avec le shell

Sur macOS, vous pouvez utiliser la commande pmset pour modifier les paramètres de l’économiseur de batterie. Voici quelques exemples de ce que vous pouvez faire :

  • Pour désactiver l’économiseur de batterie, utilisez la commande suivante :
sudo pmset -b disablesleep 1
  • Pour activer l’économiseur de batterie, utilisez la commande suivante :
sudo pmset -b disablesleep 0
  • Pour afficher les paramètres actuels de l’économiseur de batterie, utilisez la commande suivante :
pmset -g

Vous pouvez également utiliser la commande pmset pour configurer d’autres paramètres de l’économiseur de batterie, tels que le temps avant mise en veille ou le mode de mise en veille.

Quelques options :

  • -a : appliquer les paramètres à l’ensemble de l’ordinateur (alimentation et batterie).
  • -b : appliquer les paramètres uniquement à la batterie.
  • -c : appliquer les paramètres uniquement lorsque l’ordinateur est connecté à l’alimentation.
  • disablesleep : désactiver ou activer la mise en veille.
  • sleep : définir le temps avant mise en veille.
  • displaysleep : définir le temps avant mise en veille de l’écran.
  • womp : activer ou désactiver la réveil sur réseau (Wake on LAN).
  • acwake : définir l’action à effectuer lorsque l’ordinateur est connecté à l’alimentation.
  • battwake : définir l’action à effectuer lorsque l’ordinateur utilise la batter

Notez que vous devrez utiliser sudo pour exécuter ces commandes avec les privilèges du superutilisateur (root). Assurez-vous de comprendre ce que vous faites avant de modifier ces paramètres, car cela peut avoir des conséquences sur la durée de vie de la batterie et la performance de votre ordinateur.

Henri Dominique Rapin

macOS : Modifier l’heure de démarrage automatique avec le Terminal

L’option de configuration de démarrage à disparue dans macOS Ventura, la solution est d’utiliser Terminal.

Pour changer l’heure de démarrage de votre ordinateur en utilisant la ligne de commande (ou « shell ») sous macOS, vous pouvez utiliser la commande sudo pmset repeat wakeorpoweron. Cette commande permet de définir une heure de démarrage répétée pour votre ordinateur.

Voici comment l’utiliser :

  1. Ouvrez l’application Terminal en la cherchant dans le Finder ou en la sélectionnant dans le dossier « Utilitaires » du dossier « Applications ».
  2. Saisissez la commande suivante, en remplaçant « HH:MM » par l’heure de démarrage souhaitée et « day » par le jour de la semaine ou le mois sur lequel vous souhaitez démarrer (par exemple, « Mon » pour lundi, « Jan » pour janvier, etc.) :
Copy codesudo pmset repeat wakeorpoweron HH:MM day
  1. Appuyez sur la touche Entrée pour exécuter la commande. Si vous êtes invité à entrer votre mot de passe administrateur, saisissez-le et appuyez à nouveau sur Entrée.

La commande pmset a de nombreuses options et paramètres qui vous permettent de personnaliser la façon dont votre ordinateur est démarré. Pour plus d’informations sur cette commande et sur les différents paramètres disponibles, vous pouvez consulter la documentation en ligne en tapant man pmset dans le Terminal.

Note : Si vous souhaitez désactiver complètement le démarrage automatique de votre ordinateur, vous pouvez utiliser la commande sudo pmset repeat wakeorpoweron 00:00 never. Cela désactivera le démarrage automatique de votre ordinateur jusqu’à ce que vous utilisiez à nouveau la commande pmset pour le réactiver.

HDR

macOS : Supprimer la notification de migration de Catalina.

Vous êtes agacé de voir la notification de migration vers Catalina ! Ce point rouge qui apparait sur l’icône de préférence de macOS vous énerve ? Voici comment supprimer cette alerte :

Alerte prefernce

  1. Ouvrez l’app. : Terminal dans le dossier Applications / Utilitaires/
  2. Entrez la commande suivante dans le terminal :
  3. $ sudo softwareupdate --ignore "macOS Catalina"

  4. Appuyez sur la touche Entrée.
    Vous devrez indiquer le mot de passe administrateur.

La notification d’installation de la mise à jour “macOS Catalina” n’ets plus là.
HD Rapin

macOS : Réinitialiser les réglages réseau avec le Terminal

Voici la troisième et dernière version. Il s’agit toujours de réinitialiser les réglages réseau de macOS. Cette fois tout se passe dans le Terminal :

Déplacez vous dans le dossier :


$ cd /Library/Preferences/SystemConfiguration/

Effectuez une sauvegarde des fichiers dans une archive ZIP :


$ sudo zip backup.zip \
com.apple.airport.preferences.plist \
com.apple.network.identification.plist \
com.apple.wifi.message-tracer.plist \
NetworkInterfaces.plist preferences.plist

Supprimez définitivement les fichiers :


$ sudo rm com.apple.airport.preferences.plist \
com.apple.network.identification.plist \
com.apple.wifi.message-tracer.plist \
NetworkInterfaces.plist preferences.plist

Vous pouvez aussi supprimer les fichiers une par une.

$ sudo rm com.apple.airport.preferences.plist

Et reproduire cette commande pour les 3 autres fichiers.

Cette opération supprime définitivement les fichiers de configuration du réseau et wifi de macOS. Vous avez le fichier Zip qui contient les fichiers sauvegardés en cas de besoin.

HD Rapin

macOS : Comment déterminer l’adresse IP de votre réseau (IP externe) ?

Comment déterminer l’adresse IP de votre réseau ?

Votre fournisseur d’adresse attribue à votre Box une adresse IP, celle-ci change régulièrement (quoi que j’ai noté que ce changement intervienne moins fréquemment).

Obtenir cette adresse IP n’est pas simple, un des moyens est de se connecter sur la borne depuis sa page d’administration et de récupérer l’information. Une autre approche consiste à consulter un site Web du type : http://www.myip.dk (il en existe de nombreux sur Internet).

Mais si vous avez besoin de cette information plus fréquemment, une solution existe en utilisant la commande Curl et le site ipecho.net

Saisissez cette commande dans le Terminal :

$ curl ipecho.net/plain

Vous obtiendrez en retour l’adresse ip qui vous a été attribuée. Pour placer la ligne de commande dans un flux Automator, voici comment faire :

Lancez Automator, ajoutez l’action Exécuter un script Shell, placez le texte de la commande. Il faut ensuite récupérer l’adresse IP pour la placer dans une notification (ou un email selon votre besoin) et pour terminer utiliser la variable dans la notification et voilà.

image-01 (écran Automator avec le flux complet)

Henri Dominique Rapin

macOS : Comment vérifier les fichiers exclus de Time Machine ?

Backup

Vous avez un doute sur la prise en charge d’un nouveau dossier ou vous souhaitez simplement vérifier les fichiers exclus de Time Machine ?

Ouvrez le Terminal et saisissez cette ligne :

 $ tmutil isexcluded (et le nom du fichier) 

Le plus simple est de glisser/déposer le fichier sur le Terminal.

Le résultat est le suivant :

tmutil_isexcluded

[included] signifiant que le fichier est bien sauvegardé.

Pour découvrir les autres options de la commande tmutil (Time Machine) :

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/tmutil.8.html

Henri Dominique Rapin


Applwe reasonably small Recevez toutes les semaines le résumé des publications : Abonnez-vous à la Newsletter !

Sécurité :: Comment fonctionne le Sandboxing sur Mac OS X ?

Finder

Le SandBoxing sur Mac OS X.

Le terme «SandBox» est particulièrement utilisé dans le monde Linux. Il se traduit par «bac à sable» et décrit un type de protection lors de l’exécution d’un logiciel.

Voir la page WIKI : http://fr.wikipedia.org/wiki/Sandbox_(sécurité_informatique) 

Imaginons un logiciel qui fonctionne sur un Mac, par défaut ce logiciel a les droits en écriture et lecture qui sont ceux de l’utilisateur qui a lancé le programme. Toujours par défaut, un utilisateur sur Mac peut écrire à volonté dans son dossier personnel (la petit maison blanche) mais dès qu’il veut modifier le contenu d’un répertoire hors de ce dossier il lui faut montrer pâte blanche et indiquer un mot de passe.

Cette approche par «compartiments» fait la force des systèmes Unix et participe à leur réputation. Dans le monde Windows les choses sont beaucoup moins claires.

Revenons sur notre exemple, notre application fonctionne sur votre Mac et un personnage mal intentionné a réussi à utiliser une faille de ce programme et le contrôle maintenant de l’extérieur. Il peut à cet instant détruire les fichiers auxquelles votre application et plus directement votre compte ont accès.

Ce genre d’attaque existe bien, certes elle ne s’applique pas en particulier aux applications lancées sur un ordinateur mais plutôt à des fonctions de» serveur» comme le serveur Internet Apache qui est livré avec Mac OS.

Une première réponse à ce type d’attaque est bien sur l’utilisation d’un «firewall», qui empêcherait l’accès de l’extérieur à ce programme. Mais quand vous mettez en place un serveur, c’est en général pour qu’il soit accessible de l’extérieur. Donc cette réponse n’est pas la plus appropriée.

Une autre solution consiste à «isoler» l’application, c’est à dire qu’elle s’exécute, mais n’a pas accès à certaines ressources de la machine. Prenons de nouveau notre exemple, cette fois imaginons que nous avons un moyen technique qui nous permet d’interdire à l’application toute écriture dans le dossier personnel de l’utilisateur ou dans une autre zone du système. Dans ce cas de figure, peut importe celui qui lance l’application, celle-ci ne peut plus écrire n’importe ou.

Ainsi donc un assaillant ayant pris possession du programme ne peut écrire et donc être nuisible. Cette technique est celle du «bac à sable» parce que l’application ou le serveur ne peut pas accéder au dehors de la zone de sécurité et ceci peu importe celui qui lance le service ou l’application.

Si les SandBox sont très communs sur Linux ou BSD, ils étaient très complexes à mettre en place sur Mac… Sauf depuis Leopard, Apple propose un solution qu’elle appelle ironiquement «SeatBelt» ou «ceinture de sécurité» (ils sont toujours très poétiques à cupertino).

Le problème de cette solution est qu’elle n’est pas documentée et Apple a raison sur ce sujet. Moins ils en diront et moins de personne tenteront de la contourner.

La solution d’Apple n’est pas inconnue des Unixiens, il s’agit de l’utilisation du framework de TrustedBSD et SELinux pour les distributions linux. A une époque Apple a essayé une version dite «SEDarwin» compatible SELinux mais a renoncé à ce projet pour se consacrer à «Seatbelt».

En pratique comment ça marche sur Mac OS X  :

les applications qu’Apple a placé dans un Bac à sable sont listées dans le dossier suivant :

/usr/share/sandbox. pour en explorer le contenu dans le terminal lancez cette commande :

$ cd /usr/share/sandbox

puis

$ ls

Une partie de la liste devrait être la suivante :

bsd.sb ntpd.sb
cvmsCompAgent.sb portmap.sb
cvmsServer.sb quicklookd-job-creation.sb
fontmover.sb quicklookd.sb
kadmind.sb sshd.sb
krb5kdc.sb syslogd.sb
mDNSResponder.sb xgridagentd.sb
mds.sb xgridagentd_task_nobody.sb
mdworker.sb xgridagentd_task_somebody.sb
named.sb xgridcontrollerd.sb

Tous les fichiers portent l’extension «.sb». SURTOUT ne modifiez ni ne supprimez ces fichiers. Pour en voir le contenu tapez la commande suivante :

$ cat fontmover.sb

Ce qui affichera le contenu du fichier «fontmover.sb». Ce fichier est divisé en sections :

Capture d écran 2012 05 07 à 18 03 59

Dont une section du nom de « (allo file-read* «, celle-ci détermine l’espace ou le chemin dans lequel l’application peut lire de fichiers. Une autre section du nom de « (allow file-write*» précise les dossiers où peuvent être écrits des informations par l’application «fontmover.» et ainsi de suite, le bac à sable est ainsi défini.

Vous pouvez vous interroger sur l’intérêt de cette technologie pour un utilisateur, prenons un programme qui voudrait communiquer avec l’extérieur (comme «Adobe»), il n’est pas possible de leur interdire l’accès au réseau. ( Pour être honnête, il existe une solution avec le firewall IPFW embarqué dans Mac OS, mais là n’est pas le sujet).

Il est possible grâce à ce mécanisme «SeatBelt» et de« SandBoxing » de lui interdire par exemple le réseau . Pour cela l’opération est simple, j’ai pris comme exemple d’interdire à l’Utilitaire Réseau » d’accéder au réseau :

Premièrement nous allons créer un profil, c’est un simple fichier texte. Dans un éditeur de texte «texedit» ou «Bean» tapez ces trois lignes :

(version 1)

(debug deny)
(deny network*)
(allow default)

La ligne (deny Network*) indique qu’aucun accès au réseau n’est permis à l’application. Vous pouvez ajouter une ligne (deny file-write*) qui interdit l’écriture de fichiers. Vous l’aurez compris l’astérixe signifie «tout».

Bean

Enregistrez le tout sous le nom «noreseau.sb» dans votre dossier personnel.

Lancez cette commande :

$ sudo

Puis après avoir saisi votre mot de passe :

$ sandbox-exec -f ~/noreseau.sb /Applications/Utilities/Network\ Utility.app/Contents/MacOS/Network\ Utility

Il faut, si vous souhaiter placer dans un sandbox une application, récupérer son exécutable qui se trouve dans le paquet de l’application. Dans le cas de l’utilitaire réseau le chemin ets : « /Applications/Utilities/Network\ Utility.app/Contents/MacOS/Network\ Utility » .

Utilitaire1

L’application sera ouverte automatique et ne pourra accéder au réseau. Vous avez là un moyen simple d’empêcher une application d’écrire dans des fichiers ou d’accéder au réseau comme par exemple «Adobe»…

Utilitaire2

Le fait d’être dans un bac à sable ne dure que le temps ou l’application est ouverte, après sa fermeture elle redémarre hors du « sandbox ».

Le principe du Sandbox n’est pas courant, mais il semble que Google Chrome l’utilise, ceci afin de prévenir des composants qui pourraient être néfastes pour les utilisateurs de ce Butineur.

Henri Dominique Rapin

Mac :: Comment identification des Processus sur Mac ?

Un grand nombre de processus fonctionnent dans votre Mac. Ils ont parfois des noms bizarres… héritage du monde Unix. Un site vous propose d’identifier ces processus. Il est en Anglais mais très accessible. Voici l’opération étape par étape. 1) ouvrez Safari avec l’adresse ci dessous : http://triviaware.com/macprocess/

Image_40.png

2) lancez le Terminal (vous le trouverez dans le dossier Applications puis Utilitaires). Dans la fenêtre saisissez :

$ ps -A > process.txt
Terminal — bash — 61×17.jpg

Le A est en majuscule et le signe supérieur bien séparé du texte par des espaces. Cela aura pour effet de créer un fichier texte du nom de « process.txt », vous le trouverez dans votre dossier personnel, la petite maison blanche. 3) Cliquez sur le bouton  » Choisir le Fichier » et sélectionnez le fichier « process.txt » et enfin cliquez sur le bouton « Upload File » . Après quelques secondes une page similaire apparaît.

triviaware.jpg

Les processus jaunes sont connus, ceux en bleu ne le sont pas, en cliquant sur la ligne « google process or application » le nom du process est envoyé à Google pour recherche. En théorie vous ne devriez pas avoir un grand nombre de processus inconnus, ce site peut vous permettre d’identifier un processus installé par un cheval de troie… en autre. HDR

TimeMachine :: Comment obtenir la liste des fichier non pris en compte par TimeMachine ?

image.jpg

Voici comme obtenir la liste des fichier non pris en compte par TimeMachine :

$ sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
Terminal — bash — 84×25.jpg

HDR

Mac :: Comment afficher des messages lors de connexion (Shell, FTP, SSH)

Terminal.png

Comment afficher des messages lors de connexion (Shell, FTP, SSH) ?

Ajouter du texte affiché à la connexion au Shell, SSH et FTP c’est souvent un bon point de départ en ce qui concerne la sécurité. Cela fait parti des bonnes pratiques, informez vos utilisateurs des conditions d’utilisations, cela évite souvent les abus.

Pour le Shell

Le fichier de configuration à éditer pour le Shell est : /etc/motd

« Motd » signifie « message of the day », et il contient généralement des messages destinés aux utilisateurs concernant l’administration du système. Ce fichier est affiché avant l’ouverture du Shell par le process login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/motd

Pour lire le contenu du fichier :

$ sudo cat /etc/motd

Pour le serveur FTP :

Le fichier de configuration à éditer pour ftp est : /etc/ftpwelcome

Le fichier « ftpwelcome » verra son contenu affiché lors d’une connexion avant que soit affiché le login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/ftpwelcome

Pour lire le contenu du fichier :

$ sudo cat /etc/ftpwelcome

Pour SSH :

Le fichier de configuration à éditer pour le SHELL est : /etc/sshd_config

SSH affiche le contenu du fichier Banner : « /etc/banner »

Pour obtenir le chemin vers le fichier

$ sudo cat /etc/sshd_config | grep Banner

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/banner

Pour lire le contenu du fichier :

$ sudo cat /etc/banner

Henri Dominique Rapin

Mountain Lion :: Comment désactiver la fermeture automatique des applications ?

Saviez-vous que depuis Mac OS X Lion, le système ferme les applications non utilisées depuis un certain temps ? Et bien c’est une fonction qui permet à Mac OS X de libérer de la mémoire.

Et si vous craignez pour les documents ouverts et non enregistrés, sachez que grâce à la fonction « Auto Save »  (ou « enregistrement en continu » en français), ils sont continuellement enregistrés. Dès lors fermer autoritairement une application ne pose plus de problème.

Si toutefois vous craignez pour vos documents, il existe un moyen de désactiver cette fonctionalité, saisissez dans le Terminal la ligne de commandes suivante :

$ defaults write -g NSDisableAutomaticTermination -bool TRUE

Automator :: Comment obtenir la liste des ports ouverts ?

AutomatorVous souhaitez identifier les ports TCP/IP ouverts ainsi que les connexions actives ? Les ports ouverts indiquent les applications qui sont en écoutent, elles attendent une connexion depuis l’extérieur. Ce qui peut révéler un partage actif alors que vous ne l’avez pas lancé.

Les connexions, elles, désignent les applications qui réalisent des échanges avec l’extérieur. Il faut faire attention à cette liste car les logiciels malveillants ont pour habitude d’envoyer des informations récupérées sur votre machine vers des serveurs sur Internet. Si le nom d’une application semble étrange, il convient de l’interrompre.

Le plus simple est de passer par le terminal et d’utiliser cette ligne de commande :

 $ lsof -i

Le voici avec un affichage un peu plus « lisible « :

 $ lsof -i | awk '{printf("%-14s%-20s%s\n", $10, $1, $9)}' | sort

 Vous obtiendrez un affichage de ce type :

 

Image 01

(écran du terminal affichant la liste des ports TCP/IP ouverts)

J’utilise Automator pour m’envoyer cette liste par Email depuis des Mac distants, voici comment :

 Lancez Automator, sélectionnez « Alarme Calendrier » si votre objectif est de programmer cet envoi de façon régulière. Sinon optez pour la création d’une application que vous lancerez pour récupérer ces informations par Mail.

 Commencez par placez l’action « Exécuter un script Shell », copiez la commande Unix. Ensuite ajoutez l’action « Créer un fichier Texte » et compléter les paramètres. Terminez par l’action de Mail : « Nouveau Message Mail».

 

Image 02

Image-02.png (le flux au complet).

 Une fois exécuté, le flux crée un message avec comme pièce jointe le fichier contenant l’ensemble des ports ouverts.

Image 03

 (le mail avec le fichier en pièce jointe)

 Si vous ne voulez pas laisser de trace du fichier créé, ajoutez deux actions.

 « Obtenir les éléments du Finder indiqué », indiquez le chemin jusqu’au fichier à supprimer. Puis placez l’action « Placer les éléments du Finder à la corbeille ».

 

Image 04

 (Les deux actions à ajouter pour supprimer le fichier créé.)

Et voila rien de très compliqué…

Finder :: Comment changer l’affichage du chemin afin qu’il débute à partir du dossier personnel

Finder

Le chemin (ou « path » en Anglais) affiche en bas de la Fenêtre du Finder l’arborescence qui mène vers le dossier ouvert. Il s’agit d’une option qu’il faut activer manuellement, par défaut l’affichage de chemin est désactivé.

Image01

(La fenêtre du Finder avec la barre du chemin d’accès activée)

Pour l’activer, sélectionnez « Afficher la barre du chemin d’accès » dans le menu « Présentation ». Cette option est très pratique et permet de se déplacer plus facilement dans les dossiers, vous pouvez par exemple cliquer sur l’un des dossiers présents dans cette barre pour l’ouvrir.

Image02

(Le menu « Présentation » qui donne accès à l’option d’affichage de la barre du chemin d’accès.)

Le chemin ou l’arborescence indiquée commence toujours à partir de la racine du disque dur. Hors, un utilisateur ne devrait naviguer que dans son espace, c’est à dire le dossier qui lui est attribué : la petite maison blanche qui porte le nom de l’identifiant de connexion.

Il serait donc plus simple que l’arborescence placée dans le chemin commence uniquement à partir du dossier personnel. C’est possible et pour cela, il suffit de saisir la ligne suivante dans le terminal :

$ defaults write com.apple.finder PathBarRootAtHome -bool TRUE

Une fois fait, relancez le Finder en tapant cette commande :

$ killall Finder

Chemin avant la modification :

Image03

(Base de départ la racine du disque dur)

Chemin après la modification :

Image04

(base de départ le dossier personnel, la petite maison blanche)

Vous pouvez bien sur revenir à la version d’origine en utilisant cette commande dans le Terminal :

$ defaults delete com.apple.finder PathBarRootAtHome

N’oubliez pas de relancer le Finder.

L’avantage de cette astuce est de réduire la longueur du chemin, c’est pratique pour les utilisateurs qui ont beaucoup de dossiers.

 

AppleScript :: Tuer un processus

SEScriptEditorX

 

Vous pourriez souhaiter annuler la copie du fichier, si vous tentez l’opération dans l’éditeur de Script, il ne répondra pas immédiatement… il prend son temps.

Dans cette version, nous informons l’utilisateur qu’une erreur est intervenue et nous lui demandons s’il souhaite continuer la copie : 

Nous récupérons dans la variable « mon_pid » le numéro de pid de la commande « cp » en cours d’exécution. Chaque programme ou commande

possèdes son identifiant unique le « pid ».

mon_pid to do shell script"ps aux | grep Safari | grep -v grep"
set pid to second word of mon_pid
display dialog pid
do shell script "kill " & pid

 

Le script s’explique ainsi :

 « mon_pid » contient le résultat d’une commande qui recherche l’application « Safari », la variable « pid » renferme le numéro du pid (qui est le 2nd mot contenu dans la variable « mon_pid »).

 Pour confirmation j’affiche le numéro du pid. Et enfin j’exécute la commande « Kill » qui tue le processus qui porte le numéro contenu dans la variable « pid ».

 Voici une version plus élégante du Script dans l’éditeur de Script.

 

Image 3

(Le script au complet dans l’éditeur de script avec la gestion des erreurs)

Mac :: Astuce :: Afficher le dossier « Bibliothèque »

 

Finder

Cette astuce consiste à faire apparaitre le dossier « Bibliothèque » qui sous Mac OS X 10.7 est caché.

Dans le Terminal exécutez cette commande :

$ chflags nohidden ~/Library

Comme ceci :

Capture d écran 2012 05 21 à 18 59 45

Rien de plus…

Pour cacher un dossier effectuez l’opération inverse :

$ chflags hidden [et le chemin du fichier]

Mac :: Safari :: Classer les signets par ordre alphabétique

safari.png

Classer vos signets par Ordre Alphabétique :

Safari possède son propre système de gestion de signets, il est simple et efficace. Toutefois une fonction manque à l’appel : Le classement par ordre alphabétique.

Lorsque vous ouvrez un dossier de signets, ils apparaissent suivant l’ordre dans lequel vous les avez ajouté, vous pouvez essayer de cliquer sur l’entête de la colonne « Signet » rien n’y fait, il ne seront pas classés dans l’ordre alphabétique.

Une solution existe. Afin de classer vos signets par ordre alphabétique vous devez glisser/déposer le dossier contenant ces signets sur le « Bureau » et oui vous pouvez le faire !

Image 1.jpg

Vous remarquerez la facilité de l’opération, c’est aussi un bon moyen pour sauvegarder ces signets ou les partager avec ses amis. Le dossier existe toujours dans Safari, il n’est pas supprimé.

Une fois le dossier sur le « Bureau «, appliquez une présentation en colonne. La dernière opération consiste maintenant à replacer le dossier dans Safari et comme par enchantement les signets sont classés alphabétiquement.

Pour cela glissez/déposez le dossier non pas sur la barre latérale gauche des signets mais au sein d’une liste de signets, (le panneau de droite).

Image 2.jpg

Il faut que le dossier soit placé dans un dossier où il ne sera pas accepté, c’est la seule contrainte « étrange « de cette opération.

Attention vous risquez d’avoir deux dossiers identiques et dont l’un aura ses signets non classés. Supprimé le contenu de l’ancien dossier et placez y les signets cette fois dans l’ordre alphabétique. Il faut répéter l’opération avec tous les dossiers que vous souhaitez ordonner.

Il existe un petit script exécutable à partir du terminal du nom de « Sortosaurus », il classe tous les signets et dossiers par ordre alphabétique, vous devez le télécharger sur ce site http://homepage.mac.com/jameshoward/ et cliquer sur « Sortosaurus », fermez Safari et cliquez sur l’icône de « Sortosaurus » qui se trouve dans le dossier « Téléchargement ». Et voilà. Ce script ne propose pas de « retour arrière » donc une fois lancé, le script modifie définitivement le classement de signets.

Si cette astuce vous semble compliquée, il existe un utilitaire qui vous permettra d’organiser vos signets dans Safari : Il s’agit de « Saft », mais il en fait bien plus… Vous pouvez télécharger une version d’essai : http://haoli.dnsalias.com/shared/Saft_Leopard.dmg. A utiliser avec modération à l’heure où Safari 4 est en passe de sortir, ce qui risque de rendre délicate la compatibilité avec ce produit.

HDR

Mac :: Snow Leopard :: Exécuter des programmes 32 bits sur un OS 64 bits

64bit_icon_20090824.jpg

Fondamentalement du code compilé en 32 bits ou 64 bits peut être exécutés quelque soit la plateforme 32 bits ou 64 bits. La contrainte principale concerne la taille des données et donc du type de variable utilisée par le compilateur.

Lorsque vous créez un programme en C, Objective-C ou tout autre langage vous devez définir vos variables, en général un entier est déclaré par le mot « int ». D’un façon tout aussi commune cet « entier » est codé sur 32 bits sur un système 32 et bien sur sur une longueur de 64 bits sur un OS de 64 bits.

En choisissant un modèle de données codées sur 64 bits, un système 32 bits ne peut exploiter les données ce qui à pour effet direct de ne pas autoriser l’exécution du programme. Alors comment fait Apple pour permettre l’exécution de programmes compilées en 32 bits pour être exécutés sur Snow Leopard 64 bits ?

En choisissant le mode LP64, Apple reste sur un modèle 32 Bits sauf pour l’adressage des pointeurs qui lui utilise 64 Bits. Un pointeur étant juste une adresse en mémoire, Apple se donne ainsi la possibilité d’utiliser plus d’adresses de mémoire qu’avec des pointeurs en 32 Bits.

Par contre les types de variable restent sur un mode 32 Bits afin d’assurer la compatibilité.

Microsoft à choisi un solution plus radicale : LLP64 tous est en 64 bits, dès lors aucune application 32 Bits ne peut être exécutée sur un système 64 Bits de Microsoft. L’astuce trouvée par Redmond est de placer un « émulateur » 3 bits dans ces systèmes.

les deux premières lignes sont présentes à titre indicatif, car le probleme apparu aussi lors du passage vers une architecture 32 Bits.

Tableau comparatif des différents modes :

Modèle de données Taille d’un short (bits) Taille d’un int (bits) Taille d’un long (bits) Taille d’un pointeur (bits)
LP32 16 16 32 32
ILP32 16 32 32 32
LP64 16 32 64 64
LLP64 16 32 32 64
ILP64 16 64 64 64

Mac :: OS :: Vérifier les permissions dans le Terminal

Terminal.png

Il existe plusieurs technique afin de vérifier les permissions des dossiers et fichiers. Le plus simple est d’utiliser l’utilitaire « Outil disque » mais vous pouvez aussi exploiter le terminal pour le même résultat :

Il faut pour cela utiliser la commande  » diskutil  » pour vérifier et réparer les autorisations d’un fichier sur le disque système. Vous ne pouvez spécifier le volume de démarrage OS X et ni utiliser le nom du volume qui apparait sur le bureau.

La « node » est le noeux ou point de montage du disque, il est différent du nom du volume qui apparait sur le Bureau ou dans le Finder.

Pour trouver le node du périphérique, vous avez deux possibilités :

$ df
Terminal — bash — 80×24.jpg
$ diskutil list
Terminal — bash — 80×24-1.jpg

Personnellement la seconde me parait plus « lisible ». Dans le cas présent j’ai sélectionné le volume « Macintosh HD », il S’agit du disque « /dev/disk0 » puis de la partition n°2 que l’on désigne par la combinaison « s2 ».

Je vais donc maintenant lancer la commande de vérification et de réparation des permissions.

$ diskutil verifyPermissions /dev/disk0s2
Terminal — diskutil — 80×24.jpg

L’opération prend un certain temps, cela dépend du nombre de fichiers et dossiers présents au sein de la partition vérifiée.

Si vous souhaitez effectuer cette opération de façon plus simple, placez la ligne de commande dans un script AppleScript ou un WorkFlow dans Automator. Vous pouvez ensuite facilement programmer cette tache avec
iCal.

Henri Dominique Rapin

Mac :: Spotlight :: Astuces part 2

image.jpg

Les recherches sauvegardées sont placées dans le dossier : « Bibliothèque/Recherches enregistrées/ « ce qui donne  » ~/Library/Saved Searches » dans le Terminal.

Il est tout à fait possible de les exécuter et d’en récupérer le résultat dans le Terminal, il faut pour cela utiliser l’option « -s » et indiquer le nom de la recherche :

$ mdfind -s "Mac"

Dans cet exemple ma recherche enregistrée s’appelle « Mac »

Vous pouvez effectuer une recherche en utilisant les mêmes options que dans l’interface graphique, il faut indiquer les mots clés suivi de leur valeurs.

Dans cet exemple nous obtiendrons les fichiers de type « image » contenant le mot « Mac »

$ mdfind voiture kind:image
Terminal — bash — 74×14.jpg

Vous pouvez obtenir en lieu et place de la liste de documents le décompte comme ceci :

$ mdfind -count Mac kind:text

J’ai 2410 fichiers de type texte qui contiennent le mot « Mac ».

Terminal — bash — 80×7.jpg

Henri Dominique Rapin

Mac :: Spotlight :: Les fichiers et dossiers importants

image.jpg

Emplacement des « Importers »

/Library/Spotlight
/System/Library/Spotlight

Le panneau de préférences de spotlight:

/System/Library/PreferencePanes/Spotlight.prefPane

Le Service :

/System/Library/Services/Spotlight.service
/System/Library/CoreServices/Spotlight.app/Contents/MacOS/Spotlight

Les commandes :

/usr/bin/mdimport
/usr/bin/mdcheckschema
/usr/bin/mdfind
/usr/bin/mdls
/usr/bin/mdutil
/usr/bin/md

Mac :: Spotlight :: les commandes de base

image.jpg

Ajouter un fichier à Spotlight :

Normalement tout fichier ajouté au sein d’un volume est indexé automatiquement. Il n’y a donc pas de commande particulière à cet effet.

Vous pouvez bien sur forcer l’ajout, pour cela la commande mdimport doit être saisie dans le Terminal et suivi d’un espace, vous devez donner le chemin du fichier. Le plus simple est de copier/déplacer sur le Terminal le fichier que vous souhaitez indexer.

$ mdimport chemin_du_fichier
Terminal — bash — 80×24-1.jpg

Ajouter un dossier à Spotlight : Uniquement sous Tiger

Vous pouvez forcer Sptolight afin que soit ajouté le contenu d’un dossier, cela peut être utilisé pour des dossiers qui ne sont pas par défaut indexés tel les dossiers cachés par le Finder comme :

/System

Il faut pour cela utiliser l’option « -f » le f de « folder » ou dossier en Anglais.

$ mdimport -f /System
Terminal — bash — 80×24-2.jpg

Attention cela ne fonctionne plus sous Leopard !

Mac :: Préférences :: désactiver le contrôle des mises a jour

iTunes.png

Il existe plusieurs préférences qui permettent de limiter le fonctionnement d’iTunes, en voici quelques un :

disableCheckForUpdates
disableAutomaticDeviceSync
disableGetAlbumArtwork
disablePlugins

L’exemple le plus intéressant est d’empêcher la vérification par iTunes de l’existence d’une mise à jour:

$ defaults write com.apple.iTunes disableCheckForUpdates -bool YES

Mac :: utilitaire :: GeekTool 3

GeekTool se bonifie et passe en version 3. Le site est lui aussi refait et propose des sections pour utilisateurs.

Cet utilitaire permet d’afficher le résultat de commandes Unix (shell), images ou éléments de pages Web sur le fond de votre bureau.

La nouvelle interface :

Voila_Capture32.png

http://projects.tynsoe.org/fr/geektool/

Les Processus en tête de liste :

top -ocpu -FR -l2 -n20 | grep '^....[1234567890] ' | grep -v ' 0.0% ..:' | cut -c 1-24,33-42,64-77

Informations sur vos connexions Wifi :

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I

CPU Idle %

top -l 2 | awk '/CPU usage/ && NR > 5 {print $12, $13}'

IP Address (from nicinabox.com)

ifconfig en1 | grep "inet " | awk '{print $2}'

Calendrier (nicinabox.com)

cal | awk -v cday=`date "+%d"` '{ fill=(int(cday)>9?"":" ");
a=$0; sub(" "fill int(cday)" ","["fill int(cday)"]",a); print a }'

Upload

if=`ifconfig | awk '($1 ~ /^inet$/ && $2 !~ /^127.0.0.1$/) || /BROADCAST/ {if ($1 == "inet") {sub(/:/,"",i); print i; exit;} else i = $1;}'`; o=`netstat -I $if -bn | awk 'NR == 2 {print $10}'`; sleep 4; if [ -n "$if" ]; then echo `expr \( \`netstat -I $if -bn | awk 'NR == 2 {print $10}'\` - $o \) | awk '{printf("%.1f KB/s",$1 / (1024 * 4))}'` up; fi

Download

if=`ifconfig | awk '($1 ~ /^inet$/ && $2 !~ /^127.0.0.1$/) || /BROADCAST/ {if ($1 == "inet") {sub(/:/,"",i); print i; exit;} else i = $1;}'`; i=`netstat -I $if -bn | awk 'NR == 2 {print $7}'`; sleep 4; if [ -n "$if" ]; then echo `expr \( \`netstat -I $if -bn | awk 'NR == 2 {print $7}'\` - $i \) | awk '{printf("%.1f KB/s",$1 / (1024 * 4))}'` dn; fi

Mac :: Capture d’ecran :: Changer les parametres

Vous pouvez changer l’emplacement par défaut d’enregistrement des copies d’écrans faites à partir de Mac OS X en exécutant ces deux lignes dans le Terminal ;

A saisir l’une après l’autre :

$ defaults write com.apple.screencapture location

Taper sur la touche « Entrer » puis procédez de même pour la ligne suivante ;

$ killall SystemUIServer

Et voilà !

Henri Dominique Rapin

Mac :: Shell :: Posix

Apple se targue avec Mac OS X Leopard d’être compatible avec les spécifications de la norme POSIX 1003.1.

Cela concerne essentiellement l’implémentation du Shell et des commandes Unix.

Toutefois pour utiliser cette norme POSIX 1003.1 vous devez ajouter les options suivantes à la ligne de commande d’exécution du Shell.

Par exemple avec Bash ;

$ bash --posix

L’implémentation actuelle est la version 3.2.

Notez que certaines commandes dans les Man Pages font référence a la norme 1003.2, qui comme on peut l’imaginer fait référence a une conventio plus récente :

c’est le cas par exemple pour la commande :

$ re_format

ou

$ man re_format

Qui est liée aux expressions régulières.

Henri Dominique Rapin

Mac :: Unix :: Shell

Savez vous quels sont les « Shell » livrés avec Mac OS X Leopard ?

Nous avons en premier le « Bourne Again SHell » ou Bash, c’est l’interpréteur de commande par défaut.

Puis nous avons le « TENEX C shell » plus connu sous le nom de tcsh. Nous trouvons aussi le « Korn Shell » ou ksh et enfin le Z Shell appellé comunement le zshell.

Les 3 Shell : bash, ksh, zsh sont compatibles avec le « pere » des Shell qui est sh ou « Bourne Shell ».

La liste des Shells est disponible dans le fichier « Shells » placé dans /etc/.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

Vous pouvez en obtenir le contenu par la commande :

$ cat /etc/shells

Petite anecdote, le Shell « sh » que vous trouverez dans « /bin/sh » n’est en fait qu’un lien vers « bash »… Tout comme « tsch » qui est utilisé lorsque vous lancez « csh ».

Henri Dominique Rapin

Mac :: Spotlight :: mdutil

image.jpg

La commande « mdutil » permet de désactiver l’indexation d’un volume. La commande est simple (sudo est nécessaire) :

$ sudo mdutil -i off "/Volumes/Macintosh HD/" 

Dorénavant Spotlight n’indexera plus le volume « Macintosh HD ». Ce réglage ne sera pas modifiée même après un redémarrage.

Pour revenir au réglage précèdent, la commande est toute aussi simple :

$ sudo mdutil -i on "/Volumes/Macintosh HD/" 

Afin de connaître l’état de ce réglage pour un volume donné, utilisez la commande suivante :

$ sudo mdutil -s "/Volumes/Macintosh HD/" 

* Remplacez « Macintosh HD » par le nom du volume.

Supprimer l’indexation d’un volume peut être nécessaire, notamment lorsque vous utilisez un volume de sauvegarde ou sont répliqués les fichiers. Une indexation de ce volume fera apparaître dans le résultat de la recherche de Spotlight les document originaux et dupliqués.

Henri Dominique Rapin

Mac :: Shell :: Liste des partitions

Obtenir la liste des partitions :

$ diskutil list

équivalent sous Linux de :

$ sfdisk -l
Terminal — bash — bash — ttys000 — 80×25.jpg

HDR

Mac :: VMware Fusion 2 :: Le guide gratuit

J’ai écrit à la demande de VMware un guide sur le logiciel « Fusion 2 ». Pour rappel Fusion est un programme de virtualisation qui permet entre autre d’exécuter Microsoft Windows sur Mac.

Ce guide est terminé et sera mis à disposition gratuitement par VMware dans les semaines à venir.

Ceux qui le souhaitent peuvent en avoir une pré-version en cliquant sur le lien ce dessous :

http://files.me.com/hdrapin/h4tusq

Les six premiers chapitres sur la découverte de VMware Fusion 2 ont été réalisé par François Tonic le rédacteur en chef et fondateur du magazine « Programmez », vous y découvrirez les bases de Fusion. J’ai réalisé les sections dites « avancées » à partir du chapitre 7. Vous y trouverez des astuces ainsi que des explications sur différents aspects de Fusion. pour les connaisseurs, certaines astuces sont aussi valables pour les autres produits de VMware.

En espérant qu’il vous aidera dans l’utilisation de VMware Fusion 2… et bien sur si vous avez des remarques… sur des sujets non abordés ou des incompréhensions, je suis preneur.

Bon Mac et Bonne lecture

Image 5.jpg

Windows :: Utilitaire :: Expression Régulières

GRATUIT

Qui n’a pas cherché un bon outil afin de créer des RegEx (Expression régulières) pertinentes ? Voici un utilitaire bien fait et pertinent. Indispensable dans la trousse à outil de bon développeur…

[EN] http://www.radsoftware.com.au/regexdesigner/

Traduction de la page avec Google :

http://74.125.39.132/translate_c?hl=fr&ie=UTF-8&sl=en&tl=fr&u=http://www.radsoftware.com.au/regexdesigner/&prev=_t&usg=ALkJrhhqDw4QrhFOw4VuuwwVnERROh2bIA

Mac :: Renice

Cette astuce est utilisable uniquement lorsque vous avez une application qui sollicite beaucoup le processeur, les derniers « quad core » d’Intel ont de la puissance à revendre, sur ce type de machine cette méthode à un intérêt moindre.

Lorsque vous utilisez un Mac, vous avez la sensation que plusieurs taches s’exécutent en même temps, pourtant à la base un Mac n’a qu’un seul processeur, dès lors il doit gérer une file d’attente pour que tous les logiciels ou fonctions du système puissent avoir un peu de temps consacré par le processeur.

La bonne solution pour qu’un logiciel soit plus réactif est de limiter le nombre d’applications qui fonctionnent en même temps, ainsi votre application aura plus de « temps de calculs » . Malheureusement, ce n’est pas toujours possible, Mac Os X est aussi constitué d’un ensemble de « services » qui fonctionnent en tache de fond (appelés démons ou processus), vouloir les supprimer c’est se défaire de fonctions souvent indispensables, alors que faire ? la dernière solution : gérer les priorités entre tous les « processus » qui tournent sur votre Mac.

Gérer la file d’attente des processus ne vous apportera pas de puissance de calculs supplémentaires, simplement donnera un peu de priorité à certain logiciel au dépend d’autres, si vous effectuez de l’encodage vidéo, de la retouche de photo par lot etc.… Cette approche peu avoir un intérêt si vous n’avez pas dédié une machine puissante.

Lorsque vous lancez une application par défaut son niveau de priorité est : « zéro », ainsi, dans la file d’attente « nulle ne passe en priorité », pour modifier le niveau de priorité d’une application il faut utiliser son « PID », le Process ID (Process Identity) est un numéro attribué à un processus (programme) exécuté sur l’ordinateur, il est unique. Si vous fermiez votre application et que vous la relanciez, il y a peu de chance que le PID soit le même.

Comment récupérer le PID, le plus simple est d’utiliser l’utilitaire « Moniteur d’activité » que vous trouverez dans le dossier utilitaire, le PID correspond à la colonne de droite « N° de l’Opération », par exemple dans mon cas Word porte le numéro 7712.

Image 1.jpg

Une autre solution consiste à utiliser le terminal et de taper la ligne suivante :

$ ps ax | grep word 

(remplacer word par l’application que vous souhaitez identifier).

Vous obtiendrez quelque chose d’apparent :
$ ps ax | grep word
7761 p1 S+ 0:00.01 grep word

La commande magique est : « renice » (voir dans le terminal: man renice) , au départ certains processus système voient leur priorité établit par « nice » (voir dans le terminal : man nice). Lorsqu’il s’agit de priorité, il ne s’agit pas de dire premier ou dernier, il faut établir une échelle, elle commence à « -20 » et monte jusqu’à « +20 », pour « ralentir » une application utilisez des valeurs positive (étrange) et la valeur +20 indiquera au système que la priorité à donner est la moins élevée.

Si maintenant vous voulez augmenter la priorité, utilisez une valeur « négative » ainsi « -20 » donnera à votre application la plus haute priorité, les concepteurs d’unix n’étant pas des « écervelés » (quoi que) , ils prirent quelques protections, ainsi vous pouvez « ralentir » les processus avec votre compte utilisateur, mais vous ne pouvez pas « accélérer » une tache sans être administrateur :

La commande suivante (baisse de priorité) ne pose pas de problème :

$ renice +15 5671

Par opposition celle-ci (hausse de la priorité) ne fonctionnera pas avec votre compte utilisateur:

$ renice -10 5671
renice: 5671: setpriority: Permission denied

Pour que cela fonctionne, vous devez utiliser « sudo » :

$ sudo renice -10 5671

Après la saisie de votre mot de passe, la commande sera prise en compte.

Le gros problème de « renicer » c’est qu’il faille à chaque redémarrage d’application retrouver le PID, il existe bien un script Applescript, mais cela ne reste pas très simple, Pour maintenir un niveau priorité sur une application utilisez : « Renicer » de NorthenSoftworks ( )

Image 2.jpg

Vous aussi trouverez un utilitaire qui lui donne un maximum de priorité aux applications de premier plan: « Speed Freak » ( http://home.comcast.net/~jeff.ulicny/software/)

Utiliser « Renice » peut vous procurer plus de « temps de calculs » pour votre programme, mais cela ne sera perceptible que sur des applications nécessitant de la puissance processeur, n’oubliez pas qu’il s’agit d’un ratio, vous avez une puissance de calculs, cette puissance n’est extensible, mais en son sein vous pouvez gérer les priorités.

HDR

Mac :: Applescript :: Récupérer la version de Mac OS X

Comment récupérer la version de Mac OS X ?

Le plus direct est d’utiliser la commande « sw_vers » exécutée dans le Terminal.

Cette commande retourne des informations en fonction de l’argument :

- "sw_vers -productName" 		: Retourne le nom de l'OS
- "sw_vers -productVersion" 	: Retourne la version de Mac OS X
- "sw_vers -buildVersion"		: Retourne le Build

La page man de cette commande : http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/sw_vers.1.html

set os_version to do shell script "sw_vers -productVersion"
Image 2.png

Mac :: Terminal :: Caractères spéciaux

Il y a quelques caractères utilisés dans le « Terminal » qui n’apparaissent pas sur les touches d’un clavier standard « Apple ».

Pour obtenir la barre verticale « | » = Pressez Majuscule+Option+l

Pour obtenir la barre oblique inversée « \ » = Pressez Majuscule+Option+/

Pour obtenir les Crochets « [ » ou « ] » = Pressez Majuscule+Option+( ou Pressez Majuscule+Option+)

Pour obtenir le symbole « ` » = Pressez cette touche `
puis la barre d’espace.

Mac :: Terminal :: Comparer deux fichiers (diff)

La commande « diff » est très puissante. Sa vocation est de comparer deux fichiers et d’en afficher les résultats :

$ diff fichier1.txt fichier2.txt

L’option « -b » permet d’ignorer les espaces en se concentrant sur les caractères.

Cette commande vous permet par exemple de vérifier quel fichiers est le plus recent ou ayant un contenu particulier.

Reamarque : « diff » ne renvoi rien si les fichiers sont identiques.

Mac :: Shell :: Comment récuperer le numéro de série du Mac ?

Vous pouvez simplement le numéro de série de votre Mac en ouvrant choisissant « A propos » dans le menu « Pomme » puis en cliquant deux fois sur le numéro de version.

À propos de ce Mac.jpg

Au deuxième clic le numéro apparaît.

À propos de ce Mac-1.jpg

Mais comment faire pour un Mac distant ?

$ ioreg -l | grep IOPlatformSerialNumber 

le tout au travers de SSH..et vous récupérerez le numéro de série du Mac.

Henri Dominique Rapin