вторник, 27 мая 2014 г.

СМС шлюз своими руками на FreeBSD

К серверу с ОС FreeBSD 10.2 подключен мобильный телефон Нокиа 6500с.

Установлен smstools.

в /boot/loader.conf добавлены следующие строки:
uplcom_load="YES"
umodem_load="YES"

Ниже приведен рабочий конфиг:

#smsd.conf
checkhandler=/var/spool/sms/koi2ucshandler

devices = GSM1
logfile = /var/log/smsd.log
failed = /var/spool/sms/failed
report = /var/spool/sms/report
loglevel = 7

USER = smsd
GROUP = dialer

PIDFILE = /var/run/smsd/smsd.pid
INFOFILE = /var/run/smsd/smsd.working

keep_filename=yes
store_original_filename=yes


[GSM1]
device=/dev/cuaU0
baudrate=115200
rtscts=no
init=AT+CSCS="UCS2"
#incoming=yes
report=yes
hangup_incoming_call=yes
send_delay=20


и скрипт конвертации кодировки для отображения смс в кириллице:

#!/bin/sh
  if  -f /tmp/smsd.lock  ; then
   exit 0
 else
     touch /tmp/smsd.lock
 fi

 PREP_DIR="/var/spool/sms/prepare"
 OUT_DIR="/var/spool/sms/outgoing"

 cd $PREP_DIR
   for message in $(ls *) ; do
     output=${OUT_DIR}/$(date "+%s")
     cat ${message}|grep "^To:">${output}.sms
     echo "Alphabet: UCS2">>${output}.sms

     echo>>${output}.sms
     cat ${message}|grep -v "^To:"|iconv -f KOI8-R -t UCS-2BE >> ${output}.sms
     rm -f ${message}
     sleep 1
 done
 rm -f /tmp/smsd.lock


вторник, 20 мая 2014 г.

Резервное копирование баз данных MySQL с помощью rsync


Резервное копирование баз данных MySQL с помощью rsync

Скрипт:

#!/bin/sh

MYSQL_USERNAME=имя_пользователя_БД
MYSQL_PASSWORD=пароль_пользователя_БД
BACKUP_DIR="/usr/local/db_backup"
REMOTE_IP=IP_адрес_сервера #(на который будет совершатся копирование)
tm=`date +"%d%m%Y"` #получаем текущую дату
#создаем бекапы баз
for i in `mysql --user=${MYSQL_USERNAME} -e "show databases"`
do
mysqldump --single-transaction --user=${MYSQL_USERNAME} $i > ${BACKUP_DIR}/$i.sql
done
#создаем директорию с текущей датой и перемещаем в нее все архивы баз
gzip ${BACKUP_DIR}/*.sql #архивируем базы
mkdir ${BACKUP_DIR}/${tm} | mv -f ${BACKUP_DIR}/*.gz  ${BACKUP_DIR}/${tm}

old_dir=`find ${BACKUP_DIR} -newer ${tm}` #ищем в директории предыдущий бекап

rm -rf ${old_dir} #и удаляем его


rsync -e='ssh' --progress -lzuogthvr ${BACKUP_DIR}/${tm} имя_пользователя_на_удаленном_сервере@${REMOTE_IP}:/полный_путь_к_папке_ для бекапов
#конец скрипта

Далее настраиваем авторизацию по ssh без пароля:

на сервере MySQL создаем ключ
ssh-keygen –t rsa –b 2048

с помощью scp копируем на удаленный сервер ключ
scp ~/.ssh/id_rsa.pub удаленный_пользователь@IP_адрес_удаленного_сервера:/путь_к_домашней_папке_пользователя_с удаленного_сервера

логинимся на удаленный сервер по ssh.
переименовываем ключ  
cat id_rsa.pub >> ~/.ssh/authorized_keys 

выставляем необходимые права на папки
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

Добавляем запуск скрипта в cron. 


P.S. на данный момент определил, что скрипт не работает по cron :) работаю над устранением проблемы :)
 



среда, 7 мая 2014 г.

Не запускаеться apache на FreeBsd

Необходимо ввести команду: 

kldload accf_http

И добавить следующую строку в /boot/loader.conf (если нет такого файла- создать):
accf_http_load="YES"