PHP7 mysql deprecated для ленивых

 /** Simple layer for supporting most common deprecated mysql_* functions in PHP 7.
* It replaces their calls to MySQLi function calls.
* Just include this file in start of your index.php.
*
* Written by 4X_Pro, http://4xpro.ru
* Distributed under MIT license terms.
* **/

function mysql_connect($server,$username,$password,$new_link,$client_flags) {
$GLOBALS['mysql_oldstyle_link']=mysqli_connect($server,$username,$password);
return $GLOBALS['mysql_oldstyle_link'];
}

function mysql_query($sql) {
return mysqli_query($GLOBALS['mysql_oldstyle_link'],$sql);
}

function mysql_fetch_row($res) {
return mysqli_fetch_row($res);
}

function mysql_fetch_assoc($res) {
return mysqli_fetch_assoc($res);
}

function mysql_fetch_array($res) {
return mysqli_fetch_array($res);
}

function mysql_fetch_object($res) {
return mysqli_fetch_object($res);
}

function mysql_affected_rows($link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_affected_rows($link);
}

function mysql_insert_id($link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_insert_id ($link);
}

function mysql_select_db($database_name) {
return mysqli_select_db($GLOBALS['mysql_oldstyle_link'],$database_name);
}

function mysql_errno($link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_errno($link);
}

function mysql_error($link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_error($link);
}

function mysql_num_rows($res) {
return mysqli_num_rows($res);
}

function mysql_free_result($res) {
return mysqli_free_result($res);
}

function mysql_close($link) {
return mysqli_close($link);
}

function mysql_real_escape_string($sql,$link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_real_escape_string($link,$sql);
}

function mysql_get_server_info($link=NULL) {
if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link'];
return mysqli_get_server_info($link);
}
Рубрика: Новости | Оставить комментарий

sms tools

установка


yum -y install epel-release smstools

скрипт event

#!/bin/bash
host="127.0.0.1"
user="userdb"
pass="password"
db="smsdb"
table="rawlog"
mysql="/usr/bin/mysql"
case "$1" in
SENT|RECEIVED|FAILED)
if sed -e '/^$/ q' < "$2" | grep "^Alphabet: UCS-2BE" > /dev/null; then
TMPFILE=mktemp /tmp/smsd_XXXXXX
sed -e '/^$/ q' < "$2" | sed -e 's/Alphabet: UCS2/Alphabet: UTF-8/g' > $TMPFILE
tail -n 1 $2 | iconv -f UCS-2BE -t CP1251 >> $TMPFILE
chmod 0666 $TMPFILE
mv $TMPFILE "$2"
fi
;;
esac
DATE=date +"%Y-%m-%d %H:%M:%S"
Extract data from the SMS file
FROM=formail -zx From: < $2 | sed 's/"//g'
Extra line for populating "Send" field in case of "FAILED" or "SENT"
MODEM=formail -zx Modem: < $2 | sed 's/"//g'
TO=formail -zx To: < $2
Remove plus sign, spaces, minus and short number prefix
TO=echo "$TO" | sed 's/ //g' | sed 's/+//g' | sed 's/s//g' | sed 's/-//g'
SUBJECT=formail -zx Subject: < $2
SENT=formail -zx Sent: < $2
TEXT=tail -n1 $2
TEXTSQL=$(tail -n1 $2 | iconv -f UNICODEBIG -t UTF8 | sed 's/\/\\/g' | sed 's/\"/\\"/g')
Set some SQL parameters
SQL="${mysql} --host=${host} --user=${user} --password=${pass} --database=${db}"
Insert a new entry into the SQL table
if [ "$1" = "FAILED" ] || [ "$1" = "SENT" ]; then
${SQL} --execute="insert into ${table} (smsfilename,type,sent,sender,receiver,msgid,text) values (\"$2\",\"$1\",\"$DATE\",\"$MODEM\",\"$TO\",\"$3\",\"$TEXTSQL\");"
COUNT=${SQL} -N -e "select COUNT(*) AS '1' FROM rawlog MONTH(unixtime) = MONTH(CURDATE());"
if [ "$COUNT" = 1500 ]; then
sudo smssend +79637105255 "Мы близки к первышению тарифа по СМС номера +7(926)900-45-37 и +7(925)905-83-70, текущее значение отправленных $COUNT" #уведомление ответственным
fi
elif [ "$1" = "RECEIVED" ]; then
${SQL} --execute="insert into ${table} (smsfilename,type,sent,received,sender,receiver,text) values (\"$2\",\"RECEIVED\",\"$SENT\",\"$DATE\",\"$FROM\",\"$SUBJECT\",\"$TEXT\");"
elif [ "$1" = "REPORT" ]; then
Extract more data from the status report file
DISCHARGE=`sed -e 1,/SMS\ STATUS/d < $2 | formail -zx Discharge_timestamp:` MSGID=`sed -e 1,/SMS\ STATUS/d < $2 | formail -zx Message_id:` STATUS=`sed -e 1,/SMS\ STATUS/d < $2 | formail -zx Status: | cut -f1 -d,` if [ "$MSGID" != "" ]; then ID=`${SQL} --execute="select id from ${table} where receiver=\"$FROM\" and type=\"SENT\" and msgid=\"$MSGID\" order by id desc limit 1;"` ${SQL} --execute="update ${table} set received=\"$DISCHARGE\",status=\"$STATUS\" where id=\"$ID\";" fi
fi

sql table


CREATE TABLE rawlog (
id INTEGER(20) NOT NULL AUTO_INCREMENT,
unixtime TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
smsfilename VARCHAR(50) COLLATE utf8_general_ci NOT NULL,
type VARCHAR(50) COLLATE utf8_general_ci NOT NULL,
sent VARCHAR(200) COLLATE utf8_general_ci NOT NULL,
sender VARCHAR(200) COLLATE utf8_general_ci NOT NULL,
received VARCHAR(200) COLLATE utf8_general_ci DEFAULT NULL,
msgid VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
text VARCHAR(200) COLLATE utf8_general_ci NOT NULL,
receiver VARCHAR(11) COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY USING BTREE (id),
UNIQUE KEY id USING BTREE (id)
) ENGINE=MyISAM
AUTO_INCREMENT=1116 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
;
Рубрика: Новости | Оставить комментарий

AT команды для модемов ZTE MF

AT команды для ZTE модемов:

AT+ZCDRUN=E — удаляет файл NODOWNLOAD.FLG
AT+ZCDRUN=F — восстанавливает NODOWNLOAD.FLG
AT+ZCDRUN=8 — удаляет файл autorun.flg
AT+ZCDRUN=9 — восстанавливает autorun.flg

Установить режим работы:

AT+ZSNT=0,0,0 — (Авто) — по умолчанию
AT+ZSNT=0,0,1 — Автоматический выбор сети: GSM+WCDMA, предпочтение GSM
AT+ZSNT=0,0,2 — Автоматический выбор сети: GSM+WCDMA, предпочтение WCDMA
AT+ZSNT=1,0,0 — Автоматический выбор сети: только GSM
AT+ZSNT=2,0,0 — Автоматический выбор сети: только WCDMA

AT+ZSNT=0,1,0 — Ручной выбор сети: GSM+WCDMA
AT+ZSNT=1,1,0 — Ручной выбор сети: только GSM
AT+ZSNT=2,1,0 — Ручной выбор сети: только WCDMA

Разблокировка:

+ZNCK=»unlock-code»
+ZNCK?
Осталось попыток 0-5

Проверить блокировку сеть/SIM:

AT+ZSEC?

Ответы: ,

< SEC_STATUE >:

0 Инициализация шифрования (Незначительные SEC_ITEMS)
1 Network Lock ошибки. (Незначительные SEC_ITEMS)
2 Сетевая блокировка
3 разблокирована или исправить MCC/MNC

0 Нет действий
1 Сеть Lock
2 (U) SIM-карты Блокировка
3 Сеть Lock и (U) SIM-карты Блокировка

Установить диапазон:

+ZBANDI
at+zbandi=0 — (Auto) — Default Автоматическое переключение
at+zbandi=1 — UMTS 850 + GSM 900/1800
at+zbandi=2 — UMTS 2100 + GSM 900/1800 (Europe)
at+zbandi=3 — UMTS 850/2100 + GSM 900/1800
at+zbandi=4 — UMTS 850/1900 + GSM 850/1900

AT команды для модемов на процессоре ICERA ZTE MF192, ZTE MF652:
AT%USBMODEM=0 — переводит модем в режим «Только модем».
AT%USBMODEM=1 — переводит модем в режим «Модем+CD ROM»

ATI — выдаёт сведения о модеме (версия,IMEI,прошивка…)

Команды можно вводить программами:

Рубрика: Новости | Оставить комментарий

Обновляем PostgreSQL 9.2.4 до PostgreSQL 9.6

подробная русская документация https://postgrespro.ru/docs/postgresql
Данное руководство может быть применено и для других версий Postgres 9.x / RHEL

Устанавливаем из репозитария postgresql.org


1. install PGDG RPM file for new postgresql server
sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
(for the list of all options, check this link: https://yum.postgresql.org/repopackages.php)

You can check list of available packages (should list both versions: postgresql-server and postgresql96-server)
sudo yum list postgresql*

2. install new postgresl server
sudo yum install postgresql96-server

3. init db
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

—>Upgrade steps (skip if required)

4. make sure both servers stopped
sudo systemctl stop postgresql # and in case you have new service started: # sudo systemctl stop postgresql-9.6

5. do the hack (for upgrade command to run)
sudo mv /usr/bin/pg_ctl{,-orig} echo ‘#!/bin/bash’|sudo tee -a /usr/bin/pg_ctl echo ‘»$0″-orig «${@/unix_socket_directory/unix_socket_directories}»‘ |sudo tee -a /usr/bin/pg_ctl sudo chmod +x /usr/bin/pg_ctl

6. run upgrade
sudo su — postgres /usr/pgsql-9.6/bin/pg_upgrade -v -b /usr/bin/ -B /usr/pgsql-9.6/bin/ -d /var/lib/pgsql/data/ -D /var/lib/pgsql/9.6/data/ logout

7. undo the hack
sudo mv -f /usr/bin/pg_ctl{-orig,}

8. remove old postgresql-server
sudo yum remove postgresql-server postgresql postgresql-libs

You can also remove old data directory, but make sure everything works well in new postgresql version before doing that:
sudo rm -rf /var/lib/pgsql/data/

<—End of Upgrade steps



9. disable old postgres from base repo
sudo vi /etc/yum.repos.d/CentOS-Base.repo # append these lines to [base] and [updates] sections: [base] .. exclude=postgresql* [updates] .. exclude=postgresql*

10. update repo and check packages
sudo yum update sudo yum list postgresql* # should list postgresql96-server, but not postgresql server!

11. enable and start service
sudo systemctl enable postgresql-9.6.service sudo systemctl start postgresql-9.6.service

12. export new path
echo ‘export PATH=$PATH:/usr/pgsql-9.6/bin’|sudo tee -a /etc/profile.d/centos9.6.sh

13. login/logout and new path should be available. Now you can run psql command:
psql —version psql (PostgreSQL) 9.6.11



Рубрика: Новости | Оставить комментарий

Не открывается!

Если через PPPOE соединение Микротик некоторые сайты не открываются.
Необходимо сделать изменения в Firewall > Mangle.
Удалить динамические правила change MSS all ppp.
Добавить правило:

/ip firewall mangle add action=change-mss chain=forward new-mss=1360 protocol=tcp tcp-flags=syn tcp-mss=1453-65535

Изменить профиль, что бы динамические правила больше не создавались:

PPP > Prifiles > Default > General > Change TCP MSS “no”
Рубрика: Новости | Оставить комментарий

Kibana Forbiden

Когда пространство близко к 50% Kibana переводит индексы в режим read-only

Снять можно так Dev Tools Console

  PUT _settings
    {
    "index": {
    "blocks": {
    "read_only_allow_delete": "false"
    }
    }
    }

    PUT your_index_name/_settings
    {
    "index": {
    "blocks": {
    "read_only_allow_delete": "false"
    }
    }
    }
Рубрика: Новости | Оставить комментарий

архивация настроек микротик по ftp

# automated backup export ftp
# ftp configuration
:local ftphost «айпишнег»
:local ftpuser «йузер»
:local ftppassword «пароль»
:local ftppath «/»
# months array
:local months («jan»,»feb»,»mar»,»apr»,»may»,»jun»,»jul»,»aug»,»sep»,»oct»,»nov»,»dec»);
# get time
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
# get Date
:local ds [/system clock get date]
# convert name of month to number
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set mm («0» . $mm); }
# set $ds to format YYYY-MM-DD
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])
# file name for system backup — file name will be Mikrotik-servername-date-time.backup
:local fname1 («/Mikrotik-«.[/system identity get name].»-«.$ds.»-«.$ts.».backup»)
# file name for config export — file name will be Mikrotik-servername-date-time.rsc
:local fname2 («/Mikrotik-«.[/system identity get name].»-«.$ds.»-«.$ts.».rsc»)
# backup the data
/system backup save name=$fname1 password=»пароль-архива»
:log info message=»System backup finished (1/2).»;
/export compact file=$fname2
:log info message=»Config export finished (2/2).»
# upload the user manager backup
:log info message=»Uploading system backup (1/2).»
/tool fetch address=»$ftphost» src-path=$fname1 user=»$ftpuser» mode=ftp password=»$ftppassword» dst-path=»$ftppath/$fname1″ upload=yes
# upload the config export
:log info message=»Uploading config export (2/2).»
/tool fetch address=»$ftphost» src-path=$fname2 user=»$ftpuser» mode=ftp password=»$ftppassword» dst-path=»$ftppath/$fname2″ upload=yes
# delay time to finish the upload — increase it if your backup file is big
:delay 30s;
# find file name start with Mikrotik- then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] «Mikrotik-«]]!=»nil») do={/file remove $i}; }
:log warning message=»Configuration backup finished.»;

при использовании ключа dont-encrypt=yes в строке
/system backup save name=$fname1 dont-encrypt=yes
архивы можно восстанавливать на однотипные модели,
а не только на текущий экземпляр

 

Рубрика: Новости | Метки: , , | Оставить комментарий

Лицензия iLO4

iLO 1 Advanced License Keys:
247RH-ZPJ8S-7B17D-FCE55-DDD17

iLO 2/3/4 Advanced License Keys:
35DPH-SVSXJ-HGBJN-C7N5R-2SS4W
35SCR-RYLML-CBK7N-TD3B9-GGBW2
34RQQ-6D5R4-G8NW3-LBMG6-MLJXR
325WC-J9QJ7-495NG-CP7WZ-7GJMM

Рубрика: Новости | Оставить комментарий

подмена сертификата ISP панели

скопировать действующий сертификат
cp /var/www/httpd-cert/www-root/домен.ru.crt /usr/local/mgr5/etc/manager.crt
cp /var/www/httpd-cert/www-root/домен.ru.key /usr/local/mgr5/etc/manager.key
и перезапустить ihttpd

Рубрика: Новости | Оставить комментарий

Centos 7 Yum и leaves

потрясающий addon для команды yum — yum-remove-with-leaves

yum install yum-remove-with-leaves

После этого у нас будет две дополнительные опции удалять связанные пакеты и без них —leaves-exclude-bin и —remove-leaves

yum --remove-leaves remove %package%

 

Рубрика: Новости | Метки: , | Оставить комментарий