Ceci est une alternative à l'autre script que j'ai publié. Celui-ci s'exécute en arrière-plan et teste la connexion réseau toutes les deux minutes pour déterminer s'il utilise une connexion Ethernet ou sans fil. Si sur Ethernet, il active Time Machine; lorsque la connexion passe au sans fil, elle désactive Time Machine.
Étape 1: vérification du système
Une fois connecté à Ethernet, vous devrez exécuter une commande manuellement pour confirmer à quelle interface Ethernet est affectée. Exécutez cette commande:
ifconfig
Il devrait afficher un écran plein d'informations. Ce que vous recherchez est une section étiquetée en
avec un numéro après, et dont la dernière ligne est status: active
, comme ceci:
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:25:00:ef:30:3c
inet6 fe80::225:ff:feef:303c%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.68 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect (100baseTX <full-duplex>)
status: active
Notez le numéro à côté en
au début - c'est l'interface sur laquelle votre connexion Ethernet fonctionne.
Étape 2: créer l'application AppleScript
Dans le script ci-dessous, où il est indiqué set wired_interface to "0"
, remplacez le 0
par le numéro à côté de en
la sortie ci-dessus. (Il devrait être 0; si vous êtes sur un Mac Pro, il peut être 1.) Toujours dans le script ci-dessous, en haut où il est dit myusername
, remplacez votre propre nom d'utilisateur Mac.
-- Edit variables here --
global current_username
set current_username to "myusername"
global wired_interface
set wired_interface to "0"
-- DO NOT EDIT BELOW THIS LINE --
global last_connection
set last_connection to "wireless"
on idle
if (do shell script "ifconfig en" & wired_interface & " | awk '/inet/ {print $2}'") is not equal to "" then
-- on ethernet
if last_connection is equal to "wireless" then
-- turn TM on
-- else do nothing, we're still on ethernet
set last_connection to "ethernet"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_On.csh"
end if
else
-- on wireless
if last_connection is equal to "ethernet" then
-- turn tm off
-- else do nothing, we're still on wireless
set last_connection to "wireless"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_Off.csh"
end if
end if
return 120
end idle
⌘+ spour enregistrer. Dans la feuille de propriétés Enregistrer, définissez le en File Format
tant que Application
et cochez la case pour Stay open after run handler
. Enregistrez-le où vous voulez - Bureau ou dossier d'applications - cela n'a pas vraiment d'importance, sachez simplement où vous l'avez enregistré.
Étape 3: créer les scripts shell
Ensuite, ouvrez Terminal. Tapez les commandes suivantes:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Collez la ligne suivante dans:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Appuyez sur control+ x, tapez yet appuyez sur returnpour enregistrer et quitter. Exécutez ensuite cette commande:
pico TM_Off.csh
Et dans ce fichier collez la ligne suivante:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Encore une fois, control+ x, puis yet returnpour enregistrer et quitter.
Ensuite, entrez ces commandes:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Étape 4: Configuration sudo
pour s'exécuter sans mot de passe
Laisser la commande Terminal sudo
s'exécuter sans mot de passe peut être très dangereux. C'est pourquoi les étapes ci-dessus ont créé les scripts shell dans leur propre répertoire, donc ce qui peut réellement être exécuté est limité.
Entrez la commande suivante dans le terminal:
sudo pico /etc/sudoers
Entrez ensuite votre mot de passe administrateur lorsque vous y êtes invité.
Cela peut vous amener à un écran (principalement) vide, ou il peut contenir du texte. Si c'est vide - ça va. Vous allez juste coller la ligne ci-dessous en haut. Si du texte existe déjà, c'est bien aussi; utilisez votre flèche vers le bas pour aller juste en dessous des lignes déjà dans la # User privilege specification
section, comme le montre la capture d'écran ci-dessous.
Ici, ajoutez la ligne suivante:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
Dans les deux endroits où <yourusername>
apparaît, remplacez-le par votre nom d'utilisateur Mac. Appuyez sur control+ x, tapez yet appuyez sur returnpour enregistrer et quitter.
Testez que ces fichiers activent et désactivent Time Machine en exécutant la commande suivante (en supposant que Time Machine est actuellement activé):
sudo ./TM_Off.csh
Après un moment, l'icône Time Machine dans la barre de menu devrait devenir grise, indiquant que Time Machine est désactivé. (Vous devrez peut-être cliquer sur l'icône pour refléter le changement). En supposant que cela fonctionne, exécutez cette commande:
sudo ./TM_On.csh
Et Time Machine devrait être réactivé.
Et c'est parti
Exécutez l'application que vous avez créée dans AppleScript Editor ci-dessus, et elle restera ouverte, activant et désactivant Time Machine lorsque votre connexion passe d'Ethernet à sans fil et inversement. Pour désactiver la commutation, fermez simplement l'application AppleScript (faites un clic droit sur l'icône dans le Dock et choisissez Quitter).