Однажды мой мобильный телефон не включился после штатного выключения. Как оказалось позже, у него просто сломалась кнопка включения и простое замыкание четырех контактов решило проблему. Но сколько неприятных минут я тогда пережил! Адресная книга, список дней рождений и куча полезных заметок стали вдруг недоступны. Резервных копий данных телефона я никогда не делал и только почти потеряв нажитое непосильным трудом задумался о необходимости регулярного сохранения содержимого телефона. Использовать ПО, поставляемое производителем мне не позволяет религия и отсутствие поддержки свободно распостраняемых ОС в этом ПО. На момент написания заметки Nokia Ovi Suite доступна только для Microsoft Windows и заявлена совместимость с Mac iSync. Т.к. ни того, ни другого у меня нет, я начал искать свободно распостраняемые альтернативы. В коллекции портов FreeBSD нашлось два приложения, которые поддерживают мою Nokia 6300:
* gnokii - http://www.gnokii.org
* gammu - http://www.gammu.org
И gnokii и gammu могут общаться с телефоном при помощи bluetooth. Конфигурационные файлы в этом случае выглядят примерно так:
$ egrep -v '^(#|$)' .gammurc
[gammu]
port = 00:1e:a3:1f:49:a0
connection = bluerfphonet
$ egrep -v '^(#|$)' .gnokiirc
[global]
port = 00:1e:a3:1f:49:a0
model = series40
connection = bluetooth
Соответственно, для работы программ необходимо уже настроенное сопряжение телефона с операционной системой.
Тестирование показало работоспособность обоих программ, но больше возможностей оказалось у gammu:
|
gnokii |
gammu |
calendar |
--getcalendarnote 1 end |
getallcalendar |
notes |
недоступно |
getallnotes |
address book |
--getphonebook <SM|ME> 1 end |
getmemory <SM|ME> |
sms |
--getsms <box> 1 end |
backupsms sms.txt -all |
calls |
--getphonebook <DC|RC|MC|LD> 1 end |
getmemory <DC|MC|RC|SL> |
Кроме того, gammu умеет выполнять резервное копирование одной командой:
$ gammu backup backup.dump -yes
Чтобы прервать, нажмите Ctrl+C...
Use Unicode subformat of backup file? (yes/no/ALL/ONLY/NONE) YES (always)
Проверяется телефонная книга телефона
Backup phone phonebook? (yes/no/ALL/ONLY/NONE) YES (always)
Reading: 100 percent
Проверяется телефонная книга SIM-карты
Проверяется календарь телефона
Backup phone calendar notes? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : *********************
Checking phone todos
Проверяются заметки телефона
Backup phone notes? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : ***************
Проверяются логотипы абонентов в телефоне
Backup phone caller groups and logos? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : *****
Проверяются SMS-профили SIM-карты
Backup SIM SMS profiles? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : **
Проверяется текст приветствия телефона
Backup phone startup logo/text? (yes/no/ALL/ONLY/NONE) YES (always)
Проверяется логотип оператора телефона
Проверяются WAP-закладки телефона
Проверяются настройки WAP телефона
Проверяются настройки MMS телефона
Проверяются настройки чата телефона
Проверяются настройки синхронизации телефона
Проверяются пользовательские мелодии звонков телефона
Проверяются режимы телефона
Проверяются FM-радиостанции телефона
Backup phone FM radio stations? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : ********************
Проверяются точки доступа GPRS телефона
Backup phone GPRS access points? (yes/no/ALL/ONLY/NONE) YES (always)
Чтение : ******
SMS сообщения и история звонков в таком режиме не сохраняются, поэтому их можно записать отдельно:
$ gammu backupsms sms.txt -all
Backup sms from folder "Templates"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "Drafts"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "Saved messages"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "Sent items"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "Outbox"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "Inbox"? (yes/no/ALL/ONLY/NONE) YES (always)
Backup sms from folder "User folder 20"? (yes/no/ALL/ONLY/NONE) YES (always)
$ for i in DC RC MC;do gnokii --getphonebook $i 1 end;done
Для автоматического выполнения резервного копирования можно использовать cron, запуская вышеописанные программы в рабочее время, когда Ваш телефон находится рядом с Вашим рабочим местом. У меня получился вот такой скрипт:
#!/bin/sh -xe
BACKUP=$HOME/backup/phone/$(date '+%F')
i=0
while : ; do
test $i -gt 30 && break
l2ping -c 1 -a phone | grep 'result=0 $' && break
i=$((i + 1))
sleep 60
done
mkdir -p $BACKUP
cd $BACKUP
gammu backup backup.dump -yes
gammu backupsms sms.txt -all
for i in DC RC; do
gnokii --getphonebook $i 1 end >$i.txt
done
Он выполняется cron'ом в 10 утра и в течении получаса пытается выполнить резервное копирование данных телефона.
Также хочу заметить, что каждая из описанных программ имеет много других полезных возможностей, таких как:
* отправка коротких сообщений и MMS
* ответ и отбой входящих звонков
* изменение параметров переадресации
* чтение и запись на файловую систему телефона
* изменение экранной заставки
* изменение мелодии звонка
* множество функций, специфичных для Nokia и Siemens
все возможные команды описаны в страницах руководств и на домашних страницах проектов:
* man gnokii
* man gammu