Задача: Осуществлять резервное копирование Bitrix CMS максимально удобным способом. Желательно тиметь инкрементарные копии.
Имеем:
Что пробовал:
Установка:
docker-compose up -d
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]</pre>
или
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
cat /var/log/apache2/access.log | cut -d " " -f 1 | sort | uniq -c | sort -n -r | head -n 10
zcat /var/log/apache2/access.log.*.gz | cut -d " " -f 1 | sort | uniq -c | sort -n -r | head -n 10
Веб-сервер | инструкция | шаблон |
ssh-auth | инструкция | шаблон |
fail2ban | git |
Данная инструкция справедлива для debian, другие ОС смотрите пожалуйста на офф сайте! Дополнительные сведения по установке
# Проверяем версию дистрибутива linux
lsb_release -a
# Выбираем русскую локаль для старых версий Debian
dpkg-reconfigure locales # lang 372
# или для современных
localectl set-locale LANG=ru_RU.utf8
localectl status
wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2%2Bstretch_all.deb
dpkg -i zabbix-release_4.0-2+stretch_all.deb
apt update
apt-get install zabbix-agent
# nano /etc/zabbix/zabbix_agent.conf
Server=127.0.0.1, zabbix.filatovz.ru
ServerActive=zabbix.filatovz.ru
LogFileSize=10
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/run/zabbix/zabbix_agentd.pid
EnableRemoteCommands=1
Timeout=30
Hostname=server_name
# nano /etc/sudoers
zabbix ALL=(ALL) NOPASSWD: ALL
sudo nano /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
systemctl daemon-reload
https://serveradmin.ru/ustanovka-i-nastroyka-zabbix-3-4-na-debian-9/
Zabbix-postgres docker-compose.yml
version: '3.1'
services:
postgres:
image: postgres
restart: always
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
zabbix-server:
image: zabbix/zabbix-server-pgsql
restart: always
environment:
DB_SERVER_HOST: postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
depends_on:
- postgres
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql
restart: always
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
depends_on:
- postgres
- zabbix-server
ports:
- 8080:80
Установка и настройка Quasar на Kodi
Практические советы, примеры и туннели SSH
sudo dpkg --add-architecture i386
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ bionic main' #(if you bionic error, type `xenial`)
sudo apt-get install --install-recommends winehq-stable
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /usr/bin/winetricks
# config wine
winetricks --force dotnet452
# for keepass
wget -q -O /tmp/libpng12.deb http://se.archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_i386.deb
dpkg -i /tmp/libpng12.deb
```shell script docker system df # использование диска Docker’ом в различных разрезах
## 2. OS
### Windows
#### Синхронизация времени
```cmd
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /resync
# Показать ошибки
journalctl -p err
# Показать логи в реальном времени
journalctl -f
# Логи за определенную дату
journalctl --since=2016-12-20
journalctl --since=2016-12-20 --until=2016-12-21
# Лог конкретного сервиса
journalctl -b -u zabbix-agent.service
```shell script fsck -y /dev/sda1 ; reboot -f
#### 2.1.3. Включаем SWAP в файле
```shell script
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
echo /var/swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab
sudo swapon -a
$ sudo nano /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
apt update && apt install git curl -y
git clone https://github.com/docker/docker-install.git
cd docker-install && sh ./install.sh
curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)"
chmod +x /usr/local/bin/docker-compose
docker-compose -v
systemctl enable docker && systemctl start docker
mkdir /docker
cd /docker
/etc/compose/docker-compose.yml - Compose file describing what to deploy
/etc/systemd/system/docker-compose.service - Service unit to start and manage docker compose
/etc/systemd/system/docker-compose-reload.service - Executing unit to trigger reload on docker-compose.service
/etc/systemd/system/docker-compose-reload.timer - Timer unit to plan the reloads
/etc/systemd/system/docker-compose-reload.service
[Unit]
Description=Refresh images and update containers
[Service]
Type=oneshot
ExecStart=/bin/systemctl reload docker-compose.service
# /etc/systemd/system/docker-compose-reload.timer
[Unit]
Description=Refresh images and update containers
Requires=docker-compose.service
After=docker-compose.service
[Timer]
OnCalendar=*:0/15
[Install]
WantedBy=timers.target
[Unit]
Description=Docker Compose container starter
After=docker.service network-online.target
Requires=docker.service network-online.target
[Service]
WorkingDirectory=/etc/compose
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/local/bin/docker-compose pull --quiet --parallel
ExecStart=/usr/local/bin/docker-compose up -d --build
ExecStop=/usr/local/bin/docker-compose down
ExecReload=/usr/local/bin/docker-compose pull --quiet --parallel
ExecReload=/usr/local/bin/docker-compose up -d --build
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload && systemctl enable docker-compose && systemctl start docker-compose
Эта служба необходима для того, чтобы архивировать старые логи или удалять их с какой-то переодичностью. Базовые настройки хранятся здесь: ‘‘/etc/logrotate.conf’’
Пример ротации конкретного файла:
/var/log/fail2ban.log {
weekly # ротация раз в неделю. Возможные варианты daily, weekly, monthly, size (например size=1M)
rotate 4 # сохраняется последние 4 ротированных файла
compress # сжимать ротируемый файл
delaycompress # сжимать предыдущий файл при следующей ротации
missingok # отсутствие файла не является ошибкой
postrotate # скрипт будет выполнен сразу после ротации
fail2ban-client set logtarget /var/log/fail2ban.log /dev/null
endscript
# If fail2ban runs as non-root it still needs to have write access
# to logfiles.
# create 640 fail2ban adm
create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем
}
Для немедленного применения изменений можно выполнить:
''$ logrotate /etc/logrotate.conf''
Для проверки внесенный изменений можно запустить команду (никаких действий с логами не будет выполнено):
''$ logrotate -d /etc/logrotate.conf''
find /var/www/test.com/public_html -type d -exec chmod 0770 {} \;
find /var/www/test.com/public_html -type f -exec chmod 0660 {} \;
<?php
if (mail("ivan@filatovz1.ru", "заголовок", "текст")) {
echo 'Отправлено';
}
else {
echo 'Не отправлено';
}
?>
```shell script rm -rf ./bitrix/upload/resize_cache # Просто удаляете эту папку и битрикс потом сам пересоздаст кэш по мере потребления (https://qna.habr.com/q/564222)
#### 4.3.2. Ссылки
[Инструменты для разработки под 1С-Битрикс](https://habr.com/en/sandbox/73214/)
#### 4.3.3. Backup
- [Детальное описание](https://tuning-soft.ru/articles/bitrix/backup-bitrix.html)
```ini
# exlude directory for bitrix < v12
/bitrix/backup
/bitrix/cache
/bitrix/managed_cache
/bitrix/stack_cache
/upload/resize_cache
оригинал здесь, мои правки ниже
bitrix_url - url вашего портала [sysadmin.bitrix24.ru]
group_id - имя группы [1]
user_id - id вашего пользователя [1] (админ обычно №1)
web_hook_key - ключ входящего вебхука
# Все открытые задачи
https://{bitrix_url}/rest/{user_id}/{web_hook_key}/task.item.list.json?ORDER[]=&FILTER[RESPONSIBLE_ID]={user_id}}&FILTER[%3CREAL_STATUS]=4&PARAMS[]=&SELECT[]=*
# Все открытые задачи только из определенной группы
https://{bitrix_url}/rest/{user_id}/{web_hook_key}/task.item.list.json?ORDER[]=&FILTER[RESPONSIBLE_ID]={user_id}}&FILTER[%3CREAL_STATUS]=4&PARAMS[]=&SELECT[]=*&FILTER[GROUP_ID]={group_id}
tasks | result[*]
id | ID
summary | TITLE
description | DESCRIPTION
updated | CHANGED_DATE
created | CREATED_DATE
singleTask-id | result.ID
singleTask-summary | result.TITLE
singleTask-description | result.DESCRIPTION
singleTask-updated | result.CHANGED_DATE
singleTask-created | result.CREATED_DATE