Sincronizzazione

In questo articolo vi mostreremo come modificare l'Apple TV per spremerne al massimo le potenzialità.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Sincronizzazione

Ora che finalmente possiamo visualizzare praticametne tutti i film in circolazione, è ora di passare al prossimo obiettivo. Come già menzionato, la mia Apple TV da 160 GB è praticamente vuota per più della metà, dato che l'ho sincronizzata con un laptop con hard disk da 80 GB. Sarebbe belle poter effettuare la sincronizzazione dei contenuti con altri dispositivi, come dei NAS.

L'idea basilare è che l'Apple TV, periodicamente, controlli delle fonti esterne e sincronizzi autonomamente i nuovi contenuti. Lo strumento che utilizzo più spesso per questo tipo di attività si chiama rsync.

Rsync è un potente strumento che permette di effettuare veloci sincronizzazioni incrementali tra due directory, locale e remota. È disponibile per molte piattaforme, tra cui l'Apple OS X. Sfortunatamente non è incluso nell'Apple TV. Tuttavia, una veloce copia del codice binario di rsync dal sistema OS X alla directory /usr/bin/  dell'Apple TV risolve questo problema.

Successivamente, dovremo impostare lo script per definire la sincronizzazione. Per questo scopo, ho creato una sottodirectory per gli script nella directory home dell'utente Frontrow. Dentro questa directory ho creato il seguente semplice script, chiamato periodic.sh,  che definisce i miei trasferimenti.

#!/bin/sh# Check to see if we are already running, if so exitif test -e /tmp/time ; then echo "Already running"; exit 0; fi# create a timestamptouch /tmp/time# synch from a remote system, to the localrsync -r jbuzbee@192.168.1.77:appleTVDropBox/ /Users/frontrow/Movies/local/# remove the timestamprm /tmp/time

Questo script manca di qualche controllo di sicurezza, ma funziona.

Per far funzionare questo script senza problemi, dovrete impostare una relazione ssh aperta, senza necessità di password, tra l'ATV e il sistema remoto. A questo link potete trovare tutte le informazioni necessarie a tale proposito. Diamo per scontato che anche nella locazione remota sia presente una sessione ssh e rsync. Gli utenti OS X potranno semplicemente avviare il login remoto nelle preferenze di condivisione del sistema. Gli utenti Windows dovranno invece seguire una procedura Dopo aver impostato la relazione ssh, rendete lo script eseguibile (chmod +x periodic.sh) e provatelo qualche volta per assicurarvi che tutto funzioni senza la richiesta di password.

Dopo che avete verificato il funzionamento dello script, dovrete avviarlo periodicamente. Da vecchio utente Linux, la prima cosa a cui ho pensato è stata cron. Cron è un potente strumento progettato per avviare dei processi a intervalli prestabiliti. OS X include cron, ma ancora una volta non è presente nell'Apple TV. Apple ha anche abbandonato l'utilizzo di cron per un nuovo sistema, chiamato launchd , incluso nell'ATV. Tanto per imparare qualcosa di nuovo, ho deciso di scrivere un XML che faccia al caso mio. Il file XML è poi stato chiamato periodic.plist ed è stato inserito nella directory /Library/LaunchAgents/  dell'Apple TV. Di seguito riporto il contenuto del file XML:

<xml version="1.0" encoding="UTF-8"?><DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>        <key>Label<key>        <string>test<string>        <key>Program<key>        <string>Users/frontrow/scripts/periodic.sh<string>        <key>ProgramArguments<key>        <array>                <string>Users/frontrow/scripts/periodic.sh<string>        <array>        <key>RunAtLoad<key>        <true/>        <key>ServiceDescription<key>        <string>periodic<string>        <key>StartInterval<key>        <integer>1800<integer><dict><plist><xml>

Questo file richiama il mio script e dice al demone launchd di avviarlo ogni 1800 secondi.

Il passo finale consiste nell'avviare lo script:

# launchctl load /Library/LaunchAgents/periodic.plist

Allo stesso modo, il comando "unload" permette di rimuovere lo script. Ora che tutto funziona, la mia Apple TV si sincronizzerà autonomamente con gli altri dispositivi della rete.