Скрипт для запуска второго natd во FreeBSD

12 марта, 2012

Понадобился второй нат, скрипт не шедевр, но для шпаргалки напишу.

/usr/local/etc/rc.d/nat2.sh Read the rest of this entry »

Переносим маршрут или трек SASPlanet (KML) на Garmin (GPX)

24 февраля, 2012

Для преобразования Маршрута в формате KML в GPX воспользуемся скриптом:

#!/bin/sh
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml — имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin
# Время создание маршрута
D=`date ‘+%Y-%m-%dT%H:%M:%SZ’`
# Номер маршрута (Можно поменять на название)
DT=`date ‘+%Y%m%d’`
cat <<EOF > convert.gpx
<?xml version=»1.0″ encoding=»UTF-8″ standalone=»no» ?>
<gpx xmlns=»http://www.topografix.com/GPX/1/1″ xmlns:gpxx=»http://www.garmin.com/xmlschemas/GpxExtensions/v3″ xmlns:wptx1=»http://www.garmin.com/xmlschemas/WaypointExtension/v1″ xmlns:gpxtpx=»http://www.garmin.com/xmlschemas/TrackPointExtension/v1″ creator=»eTrex 20″ version=»1.1″ xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» xsi:schemaLocation=»http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd»>
<metadata>
<link href=»http://www.garmin.com»>
<text>Garmin International</text>
</link>
<time>${D}</time>
</metadata>
<rte>
<name>Маршрут ${DT}</name>
EOF
cat «${1}» \
| grep «\<coordinates\>» \
| awk ‘BEGIN{FS=»<(/)*coordinates>»}{print $2}’ \
| sed ‘s/ /\n/g’ \
| grep -v «^$» \
| awk ‘BEGIN{FS=»,»}{print(» <rtept lat=\»»$2″\» lon=\»»$1″\»></rtept>»)}’ \
>> convert.gpx
cat <<EOF >> convert.gpx
</rte>
</gpx>
EOF
#!/bin/sh
# Конвертирует в маршрут
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml - имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin
# Время создание маршрута
D=`date '+%Y-%m-%dT%H:%M:%SZ'`
# Номер маршрута (Можно поменять на название)
DT=`date '+%Y%m%d'`

cat <<EOF > convert.gpx
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 20" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
<metadata>
 <link href="http://www.garmin.com">
  <text>Garmin International</text>
 </link>
 <time>${D}</time>
</metadata>
<rte>
 <name>Маршрут ${DT}</name>
EOF

cat "${1}" \
| grep "\<coordinates\>" \
| awk 'BEGIN{FS="<(/)*coordinates>"}{print $2}' \
| sed 's/ /\n/g' \
| grep -v "^$" \
| awk 'BEGIN{FS=","}{print(" <rtept lat=\""$2"\" lon=\""$1"\"></rtept>")}' \
>> convert.gpx
cat <<EOF >> convert.gpx
</rte>
</gpx>
EOF

Для преобразования Трека в формате KML в GPX воспользуемся скриптом:

#!/bin/sh
#Конвертация в трек
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml - имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin

# Время создание трека
D=`date '+%Y-%m-%dT%H:%M:%SZ'`
# Номер трека (Можно поменять на название)
DT=`date '+%Y-%m-%d'`
# Цвет трека
COLOR="Cyan"

cat <<EOF > convert.gpx
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 20" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
 <metadata>
  <link href="http://www.garmin.com">
   <text>Garmin International</text>
  </link>
  <time>${D}</time>
 </metadata>
 <trk>
  <name>Track ${DT}</name>
  <extensions>
   <gpxx:TrackExtension>
    <gpxx:DisplayColor>${COLOR}</gpxx:DisplayColor>
    </gpxx:TrackExtension>
  </extensions>
  <trkseg>
EOF

cat "${1}" \
| grep "\<coordinates\>" \
| awk 'BEGIN{FS="<(/)*coordinates>"}{print $2}' \
| sed 's/ /\n/g' \
| grep -v "^$" \
| awk 'BEGIN{FS=","}{print("<trkpt lat=\""$2"\" lon=\""$1"\"></trkpt>")}' \
>> convert.gpx

cat <<EOF >> convert.gpx
  </trkseg>
 </trk>
</gpx>
EOF

Все 🙂

Смотрим трек Garmin (GPX) на maps.google.ru или SASPlanet (KML)

22 февраля, 2012

Для того что бы отобразить GPX трек на maps.google.ru требуется конвертация, можно воспользоватся простым скриптом convert.sh: Read the rest of this entry »

Обход ограничения Gmail на отправку определенных файлов, например exe

12 декабря, 2011

Отправлял архив сайта с хостинга на почту gmail, но google запретил, видимо нашел в архиве запрещенный файл. Решением было использование dd с ключом conv=swab, который меняет старшие и младшие байты в файле, на всякий случай и расширение файла я поменял:

#!/bin/sh

T=`/bin/date +%d_%m_%Y-%H_%M`
tar -czf /home/h1779/data/tmp/${T}.t_ar.g_z /home/h1779/data/www \
&& dd if=/home/h1779/data/tmp/${T}.t_ar.g_z conv=swab | /usr/bin/uuencode ${T}t_ar.g-z \
| /usr/bin/mail -s "Backup rrv.nsk.ru ${T} для распаковки надо пропустить через dd if=t_ar.g-z of=tar.gz conv=swab" test@gmail.com \
&& /bin/rm /home/h1779/data/tmp/${T}.t_ar.g_z

Распаковываем так:

dd if=12_12_2011-09_43t_ar.g-z of=12_12_2011-09_43.tar.gz conv=swab

И получаем обычный архив.

Удачи 😉

udpxy. iptv на android или как смотреть UDP video поток через HTTP

24 ноября, 2011

Удручало отсутствие плеейров умеющих показывать UDP iptv, зато почти все плееры позволяют смотреть видео поток через http.

Решение оказалось простым, ставим на домашний компьютер/сервер udpxy

И так установка на ubuntu:

Нам потребуется GCC

sudo apt-get install gcc

Теперь скачаем Udpxy

wget http://downloads.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.1.0-Chipmunk-19.tgz
tar -zxf udpxy.1.0-Chipmunk-19.tgz
cd  udpxy.1.0-Chipmunk-19
make

У нас откомпилировался udpxy, теперь можно запустить, минимальный запуск выглядит так:

./udpxy -p 8888

Прокси будет готов принимать запросы на порту 8888, запускать можно от обычного пользователя. например если ip компа с запущенным прокси 8.8.8.8 и мы хотим посмотреть канал UDP://@239.1.2.1:1234 тогда в плеере пишем:
http://8.8.8.8:8888/udp/239.1.2.1:1234

Все 🙂 теперь все блага доступны, то есть например можно давать возможность смотреть TV своим друзьям у которых провайдер не предоставляет эту возможность, либо они просто не хотят платить за эту услугу… В общем куча возможностей… ограниченные только фантазией

p.s. Для того что бы запускать udpxy автоматически напишем скрипт /etc/init.d/udpxy.sh:

#! /bin/sh
### BEGIN INIT INFO
# Provides: udpxy
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop: 0
# Short-Description: Execute the halt command.
# Description:
### END INIT INFO

PATH=/bin:/sbin:/usr/sbin:/bin:/usr/bin

case "$1" in
start)
/usr/sbin/udpxy -p 8888
echo "udpxy starting"
;;
restart|reload|force-reload)
#echo "Error: argument '$1' not supported" >&2
$0 stop
$0 start
;;
stop)
killall udpxy
sleep 1
echo "udpxy starting"
;;
*)
echo "Usage: $0 start|stop" >&2
;;
esac

:

и прописать его в автозагрузку:
# update-rc.d udpxy.sh defaults

Отключаем переход на Летнее Зимние время, во FreeBSD

30 октября, 2011

Для отключения привязываем пояс относительно GMT

Например для Москвы (Спасибо властям  GMT-4, а не GMT-3)

Так как я из Новосибирска, вот мой пример (GMD-7):

# date
воскресенье, 30 октября 2011 г. 14:31:04 (GMT-7)
#mv /etc/localtime /etc/localtime.orig
#ln -sf /usr/share/zoneinfo/Etc/GMT-7 /etc/localtime
# date
воскресенье, 30 октября 2011 г. 14:32:51 (GMT-7)

Возможно это не единственное решение, но оно работает. Менять в настройках ntpd ничего не требуется.

Настройки Chrome

14 октября, 2011

Для более детальных настроек запустим в пустой вкладке: about:about

Редирект в Squid

5 октября, 2011

Почему пару дней назад, некоторые пользователи перестали входить в социальную сеть «вконтакте», при этом другие говорили, что не испытывают проблем. В итоге выяснилось, что через URL vkontakte.ru перестало входить, а через vk.com проблем не было. Разбираться мне было лень сделал редирект:

acl vrontakte dstdomain vkontakte.ru
http_access deny vrontakte
deny_info http://vk.com vrontakte

Конвертируем aac в mp3

5 октября, 2011

Потребовалось конвертировать, получилось:

Устанавливаем:

sudo apt-get install ffmpeg libavcodec-extra-52

Конвертируем:

ls *.aac | awk 'BEGIN{FS="."}{system ("ffmpeg -y -i "$1".aac -acodec libmp3lame -ac 1 -ar 22050 -ab 24k "$1".mp3")}'

ipfw и keep-state

5 октября, 2011

Всегда пользовался keep-state не задумываясь где создаются виртуальные правила, пока один раз не на ступил на грабли….

check-state — проверяет пакет по динамическим правилам; если соответствие обнаружено, поиск прекращается; в противном случае выполняется переход к следующему правилу; eсли check-state правило не обнаружено, динамические правила проверяются по первом правилу с опцией keep-state;

Взято здесь.