Где найти опакеченный php-fpm 5.3 для Debian 10
Очень нужно
Очень нужно
Я вот что не пойму, ну купил я колонку с Алисой, а у меня дочь допустим, Алиса, или с Марией, Мария это жена. И толку от этих колонок тогда?
Чтобы активировать функции ассистента я должен назвать его имя, уточняю на всякий случай…
Они же взяли довольно распространенное имя.
То ли дело Сири, или Кортана, имена вымышленные с реальными множествами не пересекаются.
Я не пользовался, но подозреваю что вышесказанное имеет место быть.
Кто знает?
Ну сейчас скажут что не нужно, но все равно выложу, к тому же я в предыдущей теме просил помощи, поэтому сейчас делюсь результатом.
#!/bin/bash
CHATID='-320000008'
BOTID='bot14800000775:AAH1y14esdbbkjrtykrs_NyXiEw3DzB6H0vSJM'
LicNUM=''
RING="/opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring"
ServerName="Server_name"
LicLIST=$($RING license list | awk -e '{print $1}')
for var in $LicLIST
do
if $RING license validate --name "$var" --send-statistics false | grep -qw " выполнена успешно."
then
if [[ $1 = 'test' ]]
then
MESSAGE="OK | ring license validate | $ServerName"
/usr/bin/curl -s -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$CHATID"'", "text": "'"$MESSAGE"'", "disable_notification": false}' https://api.telegram.org/$BOTID/sendMessage
fi
else
MESSAGE="FAIL | ring license validate | $ServerName"
/usr/bin/curl -s -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$CHATID"'", "text": "'"$MESSAGE"'", "disable_notification": false}' https://api.telegram.org/$BOTID/sendMessage
fi
done
И сценарий запуска:
*/10 * * * * /path/license_validator.sh
0 8 * * * /path/license_validator.sh test
Для работы требуется установленная утилита ring из пакета license_tools
Есть строка вида:
var="512249656144711-83304457808 (имя файла: \"20201115764705.lic\")"
Хочу получить часть 512249656144711-83304457808
Думаю в таком выражении:
LicNUM="$(echo "$var" | sed -nr "s/???????/p")"
Помогите пожалуйста, на bash
Вот хотел понаматывать сопли на кулак, и рассказать очередную прохладную историю.
В общем обслуживаем несколько десятков бюджетных контор. В вопросе коммуникаций сложилось за 5 лет такое мнение: клиенту запомнить телефон конкретного сотрудника в обслуживающей организации нет никакой возможности.
По сапогам звонят пирожнику, по пирогам сапожнику, а скорее даже так: если в последний раз мне помогли по номеру X то я буду звонить по нему пока не возникнет исключение и мне не выдадут другой номер, повторить.
Работаем с не техническими специалистами, бухгалтерией, в основном.
Нет ни телефонных книг в телефоне, нельзя зайти на сайт и посмотреть там. Просто не жаль своего времени совсем, людям?
Вот думаю, это мы что-то не так делаем, или клиенту нашему фиолетово, это же все телефоны «КОМПАНИНЕЙМ» а они там все одинаковые.
Как обстоят дела у айтишников? Наверное подобных проблем быть не может?
конфиг nginx сервера:
server {
listen 80;
server_name mydomain.ru;
return 301 https://$server_name$request_uri;
}
server {
server_name mydomain.ru;
listen *:443 ssl;
ssl_certificate /etc/letsencrypt/live/mydomain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.ru/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;
#логи
access_log /var/log/nginx/mydomain.ru.access.log;
error_log /var/log/nginx/mydomain.ru.error.log;
client_max_body_size 16400M;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
сервис точно работает локально на localhost:8080, как переадресовать на него запросы?
Сейчас nginx не стартует:
# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-12-22 21:24:41 +05; 14s ago
Docs: man:nginx(8)
Process: 18882 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 18883 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
дек 22 21:24:40 webserver nginx[18883]: nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)
дек 22 21:24:40 webserver nginx[18883]: nginx: [emerg] bind() to [::]:8080 failed (98: Address already in use)
дек 22 21:24:40 webserver nginx[18883]: nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)
дек 22 21:24:40 webserver nginx[18883]: nginx: [emerg] bind() to [::]:8080 failed (98: Address already in use)
дек 22 21:24:41 webserver nginx[18883]: nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)
дек 22 21:24:41 webserver nginx[18883]: nginx: [emerg] bind() to [::]:8080 failed (98: Address already in use)
дек 22 21:24:41 webserver nginx[18883]: nginx: [emerg] still could not bind()
дек 22 21:24:41 webserver systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
дек 22 21:24:41 webserver systemd[1]: nginx.service: Failed with result 'exit-code'.
дек 22 21:24:41 webserver systemd[1]: Failed to start A high performance web server and a reverse proxy server.
еще есть такой конфиг, судя по сокращению это и есть document-server
# cat /etc/nginx/conf.d/ds.conf
include /etc/nginx/includes/http-common.conf;
server {
listen 0.0.0.0:8080;
listen [::]:8080 default_server;
server_tokens off;
include /etc/nginx/includes/ds-*.conf;
Сейчас все работает так: Континент TLS клиент шифрует трафик клиента и пробрасывает его на маршрутизатор, который без изменений переадресует запрос на Континент TLS сервер, после чего уже запрос попадает на целевой Web сервер (один маленький проектик).
Что плохо? Теряется целый 1 реальный IP, а я хотел бы повесить на него еще несколько сайтов, сильно большого трафика не предвидится.
Так вот, возьмем nginx, на него же сессия попадет в зашифрованном виде (фаервол роутера же не понимает, что передает и руководствуется простым принципом: все что оттуда – туда).
Как сделать чтобы nginx так же смог пробросить трафик, но при этом понял, что это запрос для конкретного домена?
server {
listen *:443 ssl;
server_name kontinent.mydomain.ru;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass https://1.2.3.4/;
}
}
server {
listen *:443 ssl;
server_name public.mydomain.ru;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass http://1.2.3.5/;
}
}
Можно такое сделать?
Всем привет
Мой друг доктор не знает что со мной хотел поставить на старенький ноут ChromeOS, но их нет под старенький 32 битный Celeron, поэтому я предложил поставить какой ни будь Linux. На целевом ноутбуке 2Gb RAM.
Требования такие: чтобы легко ставился, так как я уехал жить в Лондон не смогу ему помогать, только по телефону. Чтобы была последняя версия Chrome Browser. Чтобы кодеки было легко поставить.
Посоветуйте что ни будь, так как я из десктопного Linux давно выпал.
Российская компания Gaijin Entertainment портировала популярные видеоигры своей разработки War Thunder, CRSED: F.O.A.D. и Enlisted на ПК с процессором «Эльбрус-8С». Производительность оказалась сравнимой с аналогичной системой на Intel Core.
https://www.cnews.ru/news/top/2020-12-17_sovremennye_igry_poshli_na
Как то я создавал тред: Объясните для чего мне нужен Zabbix
И я не троллил, я искренне заблуждался.
Потратив месяц, в который я то погружался то откладывал на потом изучение Zabbix, я понял что такое за день не написать.
Сейчас я покрыл мониторингом все хосты в организации, в том числе физические ноды, и уже это дало мне некоторые ответы на вопрос: что может пойти не так в нашей инфраструктуре.
Даю совет тем кто думает так же как и я раньше, если у вас более 3 машин, разверните четвертую с Zabbix и наблюдайте. Это спасет вас от понедельнечных завалов и многих других неожиданностей.
А какую технологию вы открыли для себя в последнее время или за все время, которая бы вас так удивила, как меня Zabbix?
PS. Там даже есть интеграция с Telegram!!!
PPS. Спасибо, всем кто меня пинал в системы мониторинга, вместо разглядывания своих наколенных скриптов!
Нет ну я понимаю что о таком мы не пишем, но ведь никогда не было!
Тестирую Zabbix в работе.
В какой то момент многие хосты стали выдавать такое сообщение.
Добавил ресурсов на Zabbix, не помогло.
top - 10:52:33 up 2:07, 1 user, load average: 3,50, 3,35, 3,29
Tasks: 178 total, 5 running, 173 sleeping, 0 stopped, 0 zombie
%Cpu(s): 34,7 us, 2,2 sy, 0,0 ni, 62,2 id, 0,4 wa, 0,0 hi, 0,5 si, 0,0 st
MiB Mem : 7977,7 total, 5787,4 free, 1251,4 used, 938,8 buff/cache
MiB Swap: 2045,0 total, 2045,0 free, 0,0 used. 6442,2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1459 zabbix 20 0 378744 18372 4376 R 94,7 0,2 58:08.96 zabbix_server
1458 zabbix 20 0 379124 13216 4376 R 94,4 0,2 58:09.38 zabbix_server
1460 zabbix 20 0 374844 14376 4376 R 93,7 0,2 58:07.48 zabbix_server
1457 zabbix 20 0 744592 401352 22324 R 12,6 4,9 8:21.85 zabbix_server
550 mysql 20 0 4278268 362352 19336 S 1,0 4,4 2:43.45 mysqld
546 zabbix 20 0 26168 5684 4444 S 0,3 0,1 0:00.63 zabbix_agentd
620 www-data 20 0 231932 29748 21100 S 0,3 0,4 0:02.58 apache2
1430 zabbix 20 0 424280 83156 24252 S 0,3 1,0 0:02.09 zabbix_server
1443 zabbix 20 0 387480 23612 10392 S 0,3 0,3 0:00.07 zabbix_server
1469 root 20 0 11224 3912 3192 R 0,3 0,0 0:07.56 top
1 root 20 0 169440 10120 7860 S 0,0 0,1 0:01.63 systemd
2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 kworker/0:0H-kblockd
8 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0,0 0,0 0:00.04 ksoftirqd/0
10 root 20 0 0 0 0 I 0,0 0,0 0:08.65 rcu_sched
11 root 20 0 0 0 0 I 0,0 0,0 0:00.00 rcu_bh
12 root rt 0 0 0 0 S 0,0 0,0 0:00.02 migration/0
13 root 20 0 0 0 0 I 0,0 0,0 0:00.26 kworker/0:1-mm_percpu_wq
14 root 20 0 0 0 0 S 0,0 0,0 0:00.00 cpuhp/0
15 root 20 0 0 0 0 S 0,0 0,0 0:00.00 cpuhp/1
16 root rt 0 0 0 0 S 0,0 0,0 0:00.57 migration/1
17 root 20 0 0 0 0 S 0,0 0,0 0:00.02 ksoftirqd/1
Помогает перезапуск службы, но не надолго. То есть сами агенты не останавливаются.
Куда копать, подскажите?
Добрый день, вчера настроил в заббиксе мониторинг PostgreSQL и Proxmox.
Сейчас разбираюсь с мониторингом MS SQL. У нас SQL 2014.
При тесте discovery в zabbix получаю эту ошибку, то есть идет попытка установить соединение но нет согласования по SSL.
Cannot connect to ODBC DSN: [SQL_ERROR]:08001][-1][[unixODBC][Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupp]|08001][-1][[unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Client unable to establish connection]
Сейчас установлен MS ODBC 17, как то похоже на тупик, так как играть с настройками /etc/ssl/openssl.cnf
[default_conf]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
Пробовал.
Zabbix установлен на Debian 10.
Ну что дорогие? Присаживайтесь поудобнее, я расскажу историю, а выводы вы как всегда будете делать сами.
На прошлой неделе в понедельник я получил приглашение пройти собеседование в одну неизвестную мне конторку на должность «Администратор Linux и Windows». Устное собеседования я скорее провалил, так как на вопрос что я буду мониторить, я толком ответить не смог, но мне предложили за 14 дней выполнить 10 тестовых заданий, с оплатой по факту по 1500 за задание.
Я обрадовался и стал зубами грызть, чтобы все получилось. И так с горем пополам в последний понедельник я работал над 7-м заданием.
Нужно было поднять Zimbra и перенести почту с разделегорованного домена на яндекс почте. Яндекс выдавал мне ошибку авторизации, после чего я предложил составить запрос в их поддержку, и собственно его написал, оставалось только отправить. Но мне сказали что это не требуется. Я еще раз попросил, сказал что это нормально, работать с саппортом, я знаю у яндекса он вменяемый.
Меня продержали в неведении сутки, после чего я сказал что не смогу выполнить задание и вынимался из трамвая.
Мне потом многие говорили, что никого скорее всего они брать не собирались, а просто задарма выполняют работы. Ну не знаю, деньги мне перевели.
Считаю что все это уже само по себе удача, ну и на будущее буду по увереннее, не знаю даже что вынеси из всего этого.
Довелось кучу всего впервые пощупать и еще деньги получил. А поиски работы продолжаются
Решил нарушить данное себе обещание не создавать контент для
ЛОР , ибо шквор сам себя не заработает.
Фотку рабочего места размещаю впервые. Не считая неудачного раза, когда пост не приняли.
На большом мониторе в терминале запущена админка Proxmox. На планшете Пивоваров рассказывает вещи, ноутбук купил позавчера еще не понял что с ним делать, но думаю буду работать на нем из загородного дома по выходным. Планшет перекочевал на системный блок и более не используется, недавно купленный ноутбук радует, но иногда неприятно удивляет… глюки Windows проявляются частенько…
За ноутбуком Sony A6000, снимки на которую можно посмотреть в профиле.
Так уже получилось, что не могу переехать на Linux на рабочем компе, так как вынужден использовать VipNet, а злобные копирасты из Инфотекс просят отдельные деньги за лицензии под Linux.
Планшету Samsung Galaxy Tab S2 3 года (или больше?) но топовое железо еще актуально. Планшет, клава и чехол фирменные, стоили в свое время под 1,5 тысячи баксов, но жил тогда один, деньги водились. Зато для ноутбука купил мышку с bluetooth, кучей кнопок и встроенным аккумуляторам… хотя до этого был уверен что мышь не должна стоить дороже 300 рублей. Для офисной работы… но захотелось чего нибудь топового.
Стол узкий, не очень удобный, и покупал я его так чтобы поменьше потратить… приехал по объявлению, а там фирма по перепродаже офисной мебели. В итоге то за чем ехал оказалось продано, но на следующий день нужно было начинать работать и купил лучшее что у них было… под мои задачи.
Так и провожу дни на удалёночке.
По итогу работы делаю больше, стресс пока меньше… очень нравится.
Перемещено Shaman007 из workplaces
Скрипт архивации тут
# cat /root/do_restore.sh
#!/bin/bash
PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/incrimental'
NEWDBNAME='';
OLDDBNAME='';
ARCHIVEDATE='';
FILETORESTORE=''
if [[ $1 != '' ]]
then
NEWDBNAME=$1
else
echo "Enter new DB name as first parametr"
exit
fi
if [[ $2 != '' ]]
then
OLDDBNAME=$2
else
echo "Enter DB name in archive"
exit
fi
if [[ $3 != '' ]]
then
ARCHIVEDATE=$3
else
echo "Enter date in forman YYYY-mm-dd"
exit
fi
if psql -U $USERNAME -h $SERVERNAME -p $PORT -lqt | cut -d \| -f 1 | grep -qw $NEWDBNAME
then
echo "Database with this name exists on this cluster"
exit
fi
DBLIST="$(ls $ARCHIVEDIR/$OLDDBNAME | grep -E "^${OLDDBNAME}.*$ARCHIVEDATE.*(.delta|.dump.gz)\$")"
if [[ "$DBLIST" = '' ]]
then
echo "There is no file to restore"
exit
fi
index=1
for var in $DBLIST
do
echo "${index} $var"
index=$(($index+1))
done
echo -n "Enter the number of archive in this list "
read answer
index=1
for var in $DBLIST
do
if [[ $index = $answer ]]
then
FILETORESTORE=$var
echo "$FILETORESTORE"
break
fi
index=$(($index+1))
done
filetype=0
if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "rdiff network-delta data"
then
filetype=1
fi
if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "PostgreSQL custom database dump"
then
filetype=2
fi
if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "gzip compressed data"
then
filetype=3
fi
case "$filetype" in
1)
echo "rdiff network-delta data"
SERIALNUM=$(echo "$FILETORESTORE" | sed 's/^.*'"${OLDDBNAME}"'_//;s/_daily.*//')
echo $SERIALNUM
ORIGINAL=$(find $ARCHIVEDIR/$OLDDBNAME/*$SERIALNUM*.dump.gz)
echo $ORIGINAL
gunzip -c $ORIGINAL > $ORIGINAL.decompressed
/usr/bin/rdiff patch $ORIGINAL.decompressed $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE $ORIGINAL.restored
rm $ORIGINAL.decompressed
psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
psql -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME < $ORIGINAL.restored
rm $ORIGINAL.restored
;;
2)
echo "PostgreSQL custom database dump"
psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
pg_restore -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME -w -Fc $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE
;;
3)
echo "gzip compressed data"
psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
gunzip < $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | psql -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME
;;
*)
echo "Undefined file type"
exit 0
;;
Спасибо всем кто помогает
Если я выполю какой то код в сеансе терминала, он отработает. Но совсем нет гарантии что он будет работать так же в сценарии, и тем более при запуске например через cron.
С кроном все можно разрулить, сейчас не пойму вот что:
root@PostgreSQL:/home/maintainer/rdiff_test# wegasgasdfg="$(ls /incrimental/bis_kamin55_psql | grep -E "^bis_kamin55_psql.*2020-12-04.*(.delta|.dump.gz)$")"
root@PostgreSQL:/home/maintainer/rdiff_test# echo $wegasgasdfg
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-00.dump.delta bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-06.dump.delta bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-10.dump.delta bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-14.dump.delta bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-18.dump.delta bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-22.dump.delta
Вроде все хорошо. Но теперь делаю так:
root@PostgreSQL:/home/maintainer# cat /root/do_restore.sh
#!/bin/bash -x
PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/incrimental'
NEWDBNAME='';
OLDDBNAME='';
ARCHIVEDATE='';
if [[ $1 != '' ]]
then
NEWDBNAME=$1
else
echo "Enter new DB name as first parametr"
exit
fi
if [[ $2 != '' ]]
then
OLDDBNAME=$2
else
echo "Enter DB name in archive"
exit
fi
if [[ $3 != '' ]]
then
ARCHIVEDATE=$3
else
echo "Enter date in forman YYYY-mm-dd"
exit
fi
#arr=( "$(ls $ARCHIVEDIR/$OLDDBNAME | grep -E "^$OLDDBNAME.*$ARCHIVEDATE.*(.dump.gz.delta|.dump.gz)\$")" )
#arr=( "$(ls /incrimental/bis_kamin55_psql | grep -E \"^bis_kamin55_psql.*2020-12-04.*(.delta|.dump.gz)\$\")" )
aaa="$(ls /incrimental/bis_kamin55_psql | grep -E "^bis_kamin55_psql.*2020-12-04.*(.delta|.dump.gz)\$")"
echo "$aaa"
echo $DBNAME
if psql -U $USERNAME -h $SERVERNAME -p $PORT -lqt | cut -d \| -f 1 | grep -qw $DBNAME
then
echo "Database with this name exists on this cluster"
exit
fi
echo -n "Restore database? (Y/n) "
read answer
case "$answer" in
Y)
psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$DBNAME -d postgres
if file $DUMPGZ | grep -qw "PostgreSQL custom database dump"
then
pg_restore -h $SERVERNAME -U $USERNAME -p $PORT -d $DBNAME -w -Fc $DUMPGZ
else
gunzip < $DUMPGZ | psql -h $SERVERNAME -U $USERNAME -p $PORT -d $DBNAME
fi
;;
*) exit 0
;;
При запуске получаем какой то выхлоп от grep
root@PostgreSQL:/home/maintainer# /root/do_restore.sh newdbname bis_kamin55_psql 2020-12-03
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-00.dump.delta
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-06.dump.delta
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-10.dump.delta
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-14.dump.delta
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-18.dump.delta
bis_kamin55_psql_Ii4Ekongaew9jie_daily_2020-12-04-22.dump.delta
Использование: grep [ПАРАМЕТР]… ШАБЛОН [ФАЙЛ]…
Запустите «grep --help» для получения более подробного описания.
Restore database? (Y/n)
Что поменялось?
Tasks: 193 total, 1 running, 192 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,5 us, 2,4 sy, 16,8 ni, 80,0 id, 0,0 wa, 0,0 hi, 0,3 si, 0,0 st
КиБ Mem: 8174880 total, 1722064 used, 6452816 free, 35096 buffers
КиБ Swap: 4320252 total, 0 used, 4320252 free. 1353276 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2111 root 39 19 4612 1472 1180 D 36,2 0,0 0:49.59 gzip
2141 root 39 19 4612 1468 1180 D 14,3 0,0 0:37.17 gzip
2140 root 39 19 4612 1500 1216 D 13,9 0,0 0:37.29 gzip
2087 root 39 19 104508 6916 4176 D 4,6 0,1 0:12.38 mysqldump
2099 root 39 19 104508 6916 4176 D 4,6 0,1 0:12.39 mysqldump
1267 mysql 20 0 661160 111140 14864 S 2,3 1,4 1:09.72 mysqld
2110 root 39 19 28368 3456 3096 S 2,3 0,0 0:03.59 tar
951 root 20 0 0 0 0 S 1,7 0,0 0:12.56 cifsd
85 root 20 0 0 0 0 S 0,7 0,0 0:03.56 kworker/3:1
2138 root 39 19 28368 3224 2864 S 0,7 0,0 0:02.86 tar
2139 root 39 19 28368 3456 3104 S 0,7 0,0 0:01.58 tar
Без видимых при чин плодятся процессы.
root@WebServer:/home/maintainer# locate gzip
/bin/gzip
/usr/lib/apt/methods/gzip
/usr/lib/klibc/bin/gzip
/usr/lib/python2.7/gzip.py
/usr/lib/python2.7/gzip.pyc
/usr/lib/python3.4/gzip.py
/usr/lib/python3.4/__pycache__/gzip.cpython-34.pyc
/usr/share/bash-completion/completions/gzip
/usr/share/doc/gzip
/usr/share/doc/gzip/README-release
/usr/share/doc/gzip/README.gz
/usr/share/doc/gzip/TODO
/usr/share/doc/gzip/changelog.Debian.gz
/usr/share/doc/gzip/copyright
/usr/share/info/gzip.info.gz
/usr/share/man/man1/gzip.1.gz
/usr/share/mime/application/gzip.xml
/usr/share/vim/vim74/autoload/gzip.vim
/usr/share/vim/vim74/doc/pi_gzip.txt
/usr/share/vim/vim74/plugin/gzip.vim
/usr/src/linux-headers-4.4.0-142-generic/include/config/decompress/gzip.h
/usr/src/linux-headers-4.4.0-142-generic/include/config/have/kernel/gzip.h
/usr/src/linux-headers-4.4.0-142-generic/include/config/kernel/gzip.h
/usr/src/linux-headers-4.4.0-142-generic/include/config/rd/gzip.h
/var/lib/dpkg/info/gzip.list
/var/lib/dpkg/info/gzip.md5sums
/var/www/html/libraries/joomla/filesystem/archive/gzip.php
/var/www/html/plugins/editors/++tinymce/jscripts/tiny_mce/tiny_mce_gzip.js
/var/www/html/plugins/editors/++tinymce/jscripts/tiny_mce/tiny_mce_gzip.php
/var/www/html/plugins/editors/jce/tiny_mce/tiny_mce_gzip.js
/var/www/html/plugins/editors/jce/tiny_mce/tiny_mce_gzip.php
/var/www/html/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_gzip.js
/var/www/html/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_gzip.php
И не много ли у меня gzip-ов в системе?
#!/bin/bash -x
ListOfBases='dblist'
PORT=5433
USERNAME='admin'
SERVERNAME='localhost'
ARCHIVEDIR='/incrimental'
MAXDBCOUNT="1"
TEMPDIR='/cache'
RAMDISKSIZE="6144M"
SUFFIX=''
NETDIR='//192.168.0.15/incrimental'
ERRLOG='/var/log/archive.log'
STARTFILE=''
SERIALNUM=''
CHATID='-327777777'
BOTID='bot14807773775:AAH1y147777MaP_NyXjjjjjzB6uuuSJM'
if [[ 'daily' = $1 ]]
then
SUFFIX='daily_'$(date +%Y-%m-%d-%H)
fi
if [[ 'monthly' = $1 ]]
then
SUFFIX='monthly_'$(date +%Y-%m-%d)
fi
if [[ 'hot' = $1 ]]
then
SUFFIX='hot_'$(date +%Y-%m-%d-%H%M)
fi
if [[ 'weekly' = $1 ]]
then
SUFFIX='weekly_'$(date +%Y-%m-%d)
fi
if [[ $SUFFIX = '' ]]
then
echo 'Type monthly, weekly, daily or hot as parametr'
exit
fi
if mount | grep -qw $NETDIR
then
echo "Network directory is mounted"
else
echo "Network direcrory $NETDIR is not mounted" >> $ERRLOG
MESSAGE="FAIL | pg_dump | PostgreSQL | ${SUFFIX}"
/usr/bin/curl -s -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$CHATID"'", "text": "'"$MESSAGE"'", "disable_notification": false}' https://api.telegram.org/$BOTID/sendMessage
exit
fi
DBLIST=$(psql -U $USERNAME -p $PORT -l | q -d'|' "select c1 from - where c1 <> '' and c2 <> '' and c1 not like 'template%' and c1 not like '%_bak%' limit 1,$MAXDBCOUNT")
echo "$DBLIST" > ${ARCHIVEDIR}'/'$ListOfBases
mkdir -p "$TEMPDIR"
mount -t tmpfs -o "size=$RAMDISKSIZE" tmpfs "$TEMPDIR"
mkdir ${TEMPDIR}"/temp"
cat $ARCHIVEDIR'/'$ListOfBases | while read DBNAME
do
mkdir -p ${ARCHIVEDIR}'/'${DBNAME}
if [[ 'weekly' = $1 ]]
then
> ${ARCHIVEDIR}/${DBNAME}'/start'
STARTFILE=''
fi
if ! [[ -e ${ARCHIVEDIR}/${DBNAME}'/start' ]]
then
> ${ARCHIVEDIR}/${DBNAME}'/start'
fi
STARTFILE="$(cat ${ARCHIVEDIR}/${DBNAME}'/start')"
if [[ $STARTFILE == '' ]]
then
SERIALNUM=$(/usr/bin/pwgen 15 1)
STARTFILE="${DBNAME}_${SERIALNUM}_${SUFFIX}.dump"
echo "$STARTFILE" > ${ARCHIVEDIR}'/'${DBNAME}'/start'
nice -n 19 ionice -c3 pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w > ${TEMPDIR}/temp/${STARTFILE}
if [[ $? -ne 0 ]]
then
echo "$DBNAME: pg_dump error code is "$? >> $ERRLOG
fi
/usr/bin/rdiff signature ${TEMPDIR}/temp/${STARTFILE} ${ARCHIVEDIR}/${DBNAME}/${STARTFILE}.signature
if [[ $? -ne 0 ]]
then
echo "$DBNAME: signature creation error "$? >> $ERRLOG
fi
/usr/bin/pigz ${TEMPDIR}/temp/${STARTFILE} > ${ARCHIVEDIR}/${DBNAME}/${STARTFILE}.gz
if [[ $? -ne 0 ]]
then
echo "$DBNAME: start file archiving error "$? >> $ERRLOG
fi
rm -f ${TEMPDIR}/temp/${STARTFILE}
else
if [ 'hot' = $1 ] || [ 'monthly' = $1 ]
then
nice -n 19 ionice -c3 pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | pigz > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$SUFFIX.dump.gz;
if [[ $? -ne 0 ]]
then
echo "$DBNAME: pg_dump error code is "$? >> $ERRLOG
fi
else
nice -n 19 ionice -c3 pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w > ${TEMPDIR}/temp/${DBNAME}_$SUFFIX.dump
if [[ $? -ne 0 ]]
then
echo "$DBNAME: pg_dump error code is "$? >> $ERRLOG
fi
SERIALNUM=$(echo "$STARTFILE" | sed 's/^.*${DBNAME}_//;s/_weekly.*//')
/usr/bin/rdiff delta ${ARCHIVEDIR}/${DBNAME}/$STARTFILE.signature ${TEMPDIR}/temp/${DBNAME}_$SUFFIX.dump ${ARCHIVEDIR}/${DBNAME}/${DBNAME}_${SERIALNUM}_${SUFFIX}.dump.delta
if [[ $? -ne 0 ]]
then
echo "$DBNAME: delta creation error "$? >> $ERRLOG
fi
rm ${TEMPDIR}/temp/${DBNAME}_${SUFFIX}.dump
fi
fi
done
umount -f "$TEMPDIR"
BackupErr=$(stat $ERRLOG -c %s)
MESSAGE=''
if [[ $BackupErr = 0 ]]
then
MESSAGE="OK | pg_dump | PostgreSQL | ${SUFFIX}"
else
MESSAGE="FAIL | pg_dump | PostgreSQL | ${SUFFIX}"
fi
/usr/bin/curl -s -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$CHATID"'", "text": "'"$MESSAGE"'", "disable_notification": false}' https://api.telegram.org/$BOTID/sendMessage
В общем pigz жмет архив в этом фрагменте, по времени видно что он работает:
SERIALNUM=$(/usr/bin/pwgen 15 1)
STARTFILE="${DBNAME}_${SERIALNUM}_${SUFFIX}.dump"
echo "$STARTFILE" > ${ARCHIVEDIR}'/'${DBNAME}'/start'
nice -n 19 ionice -c3 pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w > ${TEMPDIR}/temp/${STARTFILE}
if [[ $? -ne 0 ]]
then
echo "$DBNAME: pg_dump error code is "$? >> $ERRLOG
fi
/usr/bin/rdiff signature ${TEMPDIR}/temp/${STARTFILE} ${ARCHIVEDIR}/${DBNAME}/${STARTFILE}.signature
if [[ $? -ne 0 ]]
then
echo "$DBNAME: signature creation error "$? >> $ERRLOG
fi
/usr/bin/pigz ${TEMPDIR}/temp/${STARTFILE} > ${ARCHIVEDIR}/${DBNAME}/${STARTFILE}.gz
if [[ $? -ne 0 ]]
then
echo "$DBNAME: start file archiving error "$? >> $ERRLOG
fi
rm -f ${TEMPDIR}/temp/${STARTFILE}
Но результирующий файл пустой то есть вести 0 байт
← назад | следующие → |