пятница, 18 мая 2012 г.

n900 davfs yandex диск

Подключаем Яндекс диск к Nokia N900

Нужно установить пакеты:
apt-get install davfs2 libneon27 libneon27-gnutls neon

Далее нужно перенести модули:
mv /usr/lib/libneon.so.27 /usr/lib/libneon.so.27_back
cp /opt/maemo/usr/lib/libneon-gnutls.so.27.2.3 /usr/lib/libneon.so.27

Добавить пользователя в группу davfs2
usermod -g davfs2 davfs2

И пробовать монтировать, предварительно создав точку монтирования (mkdir /media/yandex):
mount -t davfs https://webdav.yandex.ru:443 /media/yandex 
На Яндекс диск у меня так и не получилось зайти, ошибка следующая:
Could not read status line: Secure connection truncated

Но есть консольный клиент(cadaver), через которого зайти все таки получилось:
apt-get install cadaver

Использовать так:
cadaver https://webdav.yandex.ru
Ввести логин и пароль. Далее вводим команду help, и изучаем ее вывод.


Upd.


В репозитории как то был плагин Sharing-Plugin-WebDAV ссылка.
У меня он не устанавливается, по причине - "пакет не  найден"


Нашел еще пакет тут, установил, но постоянно ошибка авторизации =(


 

четверг, 3 мая 2012 г.

Google Drive и Яндекс Диск в Debian

Подключаем Яндекс диск:
apt-get install davfs2
И монтируем:
 mount -t davfs -o uid=username,gid=username https://webdav.yandex.ru /mnt/yandex
В Nautilus'е: Меню "Файл - Соединиться с сервером"


Сервер:  webdav.yandex.ru
Порт:  443
Имя пользователя: Логин на Yandex.


В pcmanfm:
davs://username%40ya.ru@webdav.yandex.ru/

Для автоматического монтирования диска, в файл /etc/fstab пишем:
https://webdav.yandex.ru   /mnt/yandex    davfs        rw,users,noauto          0        0


Что бы не вводить каждый раз пароль, то пропишем данные для входа в файл ~/.davfs2/secrets
/mnt/yandex username@ya.ru passW0rd


Подключаем Google Drive:


Усканавливаем fuse (если не установлен)
sudo apt-get install fuse python-fuse
Подгружаем модуль
modprobe fuse 
 Устанавливаем google-docs-fs и python-gdata
Для ubuntu < 11.10 можно так:
sudo add-apt-repository ppa:invernizzi/google-docs-fs
sudo apt-get update sudo apt-get install google-docs-fs
Для 12.04 нужно скачать и установить
dpkg -i google-docs-fs-1.0rc1_all.deb
dpkg -i python-gdata_2.0.14-1_all.deb
далее создаем в домашней директории папку gDisk
mkdir ~/gDisk
и монтируем его
gmount gDisk username@gmail.com
Возможно понадобится добавить пользователя в группу fuse и разрешить fuse для пользователя ( в Debian'e по умолчанию fuse запрещен)
sudo usermod -aG fuse user
sudo chgrp fuse /dev/fuse
sudo chown user:fuse /dev/fuse

четверг, 5 апреля 2012 г.

Скрипт обновления форм статистики

Задача:  Мониторить появление новых или обновленных форм статистики, и если таковые находились, сообщать об этом пользователям.

Решение:

Небольшой скрипт на php, который парсит страницу с обновлениями, сравнивает формы с имеющимися, и с учетом потребности пользователей, рассылает сообщения о появлении обновленной формы, и ссылку на установку этой формы.

//Источник
> $html3 = file_get_contents('http://www.kalugastat.ru/statrep/DocLib2/Forms/Main.aspx');
//Регулярный выражение, которые вытаскивают со страницы, название формы, ссылку на скачивание, и дату публикации.
preg_match_all('/(?<NOBR>)[\d]{2}[\.][\d]{2}[\.][\d]{4}[\s]*[\d]*[\:][\d]*(?=<\/NOBR>)/', $html3, $date);
preg_match_all('/(?<=vb2\">)[^<]*(?=<\/TD><TD)/', $html3, $name);
preg_match_all('/(?<=\sUrl=\"\/statrep\/DocLib2\/)[\w,\d,\-,\_]*(?=.rar\"\s)/', $html3, $outlink);
//Объединение всех полученных данных в один массив
$url4[0] = $outlink[0]; //files
$url4[1] = $date[0]; //dates
$url4[2] = $name[0]; //names

//Массив пользователей, и форм пользователей.
$massform=Array("0"=> array("0" => "user1@domain.ru", "1" => array( "0" => "5-З")),
                "1"=> array("0" => " user2@domain.ru ", "1" =>  array( "0"=> "1-ТС (вывоз)", "1"=> "цены производителей")),
                "2"=> array("0" => " user3@domain.ru ", "1" => array( "0"=> "1-Инвест", "1"=> "П-2","2"=>"инвестиц", "3"=>"Форма 11", "4"=> "ИАП")),
                "3"=> array("0" => " user4@domain.ru ", "1" => array( "0"=> "1-РП", "1"=>"3-информ", "2"=>"П-3","3"=>"П-6")),
                "4"=> array("0" => " user5@domain.ru ", "1" => array( "0"=> "1-ТЭП","1"=>"автотранспорт", "2"=>"11-ТЭР","3"=>"4-ТЭР", "4"=> "24-Энергетика")),
                "5"=> array("0" => " user6@domain.ru ", "1" => array( "0"=> "2-ТП", "1"=>"4-ОС","2"=> "7-Травматизм")),
                "6"=> array("0" => " user7@domain.ru ", "1"=>array("0"=>"1-цены приобретения", "1"=>"65-автотранспорт","2"=>"Баланс производственной мощнос$
                            "4"=>"П-4", "5"=>"1-натура", "6"=>"1-предприятие","7"=>"1-Т (условия труда)", "8"=>"1-ДАП","9"=>"57-Т","10"=>"П1"))
                );
//Проход по массиву полученных данных
for($ik=0; $ik<22; $ik++)
{
$urlreport = "http://www.kalugastat.ru/statrep/DocLib2/".$url4[0][$ik].".rar";
$path = "/var/www/statupd/".$url4[0][$ik].".xml";
//Проверка, если форма уже существует, то пропускать, если нет, то идем дальше
if(!file_exists($path)) {
//Проход по массиву пользователей
for($j=0; $j<count($massform); $j++)
  {
$str = implode(",",$massform[$j][1]);
//Если в пользовательских формах есть совпадение с формой, найденной на сайте, то скачиваем форму, распаковываем, копируем в нужное место.
if(strpos($str,substr($url4[2][$ik],0,10)))
{
exec("echo 'Новая форма ".$url4[2][$ik]." от ".$url4[1][$ik]." для ".$massform[$j][0]."' | sendxmpp -s 'Statistacs update' alexey@ermolino");
exec("wget -N -O /var/www/statupd/".$url4[0][$ik].".rar $urlreport  > /dev/null 2>&1");
exec("unrar x /var/www/statupd/".$url4[0][$ik].".rar /var/www/statupd  > /dev/null 2>&1");
exec("rm /var/www/statupd/".$url4[0][$ik].".rar");
exec("cp /var/www/statupd/".$url4[0][$ik].".xml /home/router/share/files/statupd/".$url4[0][$ik].".xml");
//Отсылаем сообщение пользователю, о том что нашлась обновленная форма, и даем ему ссылку на установку этой формы.
exec("echo 'Обновите форму статистики ".$url4[2][$ik]." от ".$url4[1][$ik].". Установить - http://192.168.1.2/statbat.php?f=".$url4[0][$ik].".xml' $
        }
  }
}
}?> 
Скрипт установки формы - это простой скрипт, который формирует bat файл, запуская который пользователь устанавливает себе новую форму.


<?
//Устанавливаем header, для того, чтобы файл сохранялся, а не выводился на экран
header("Content-Disposition: attachment; filename=statbat.cmd");
$f = $_GET['f'];
?>
copy "\\192.168.1.2\!share\files\statupd\<?=$f?>" "%PROGRAMFILES%\NIPIstatinform\Формы статотчетности\Data\<?=$f?>";
?>