Воронин

автоматизируем очистку почтового ящика по-расписанию

собственно subj, на примере яндекса

я хочу удалять с сервера старые письма (старше недели) с уведомлениями, которые у меня накапливаются в отдельной папке

для начала идём в настройки безопасности https://id.yandex.ru/security

выбираем «Пароли приложений» https://id.yandex.ru/profile/apppasswords-list

и создаем новый пароль для приложения, нам требуется сгенерить пароль для доступа к Почте, указываем понятное нам название и генерим пароль

на самом деле — это очень правильно, т. к. мы не будем хранить в ком-то скрипте свой основной пароль в открытом виде

а дальше, собственно, сам скрипт

<?php
$auth_mail = 'user@yandex.ru'; // логин
$auth_pass = '$tr0ngP@$$w0rd'; // пароль
$server = '{imap.yandex.ru:993/imap/ssl}'.'INBOX'; // подключение к серверу к папке входящие
$filter_str = 'BEFORE "'.date('d-M-Y', strtotime('-7 days')).'"'; // фильтр, чтобы получить письма старше 7 дней

$imap = imap_open($server, $auth_mail, $auth_pass) or die("Не удалось подключиться: ".imap_last_error());
// подключаемся
$some = imap_search($imap, $filter_str);
// применяем фильтр
if ($some !== false) {
// если что-то нашли - в цикле обходим
	foreach ($some as $msg_id)
		{ //  и помечаем на удаление каждое письмо с его id
			echo "delete message #".$msg_id."\n";
			imap_delete($imap, $msg_id);
		}
}
// окончательно удаляем отмеченные письма и отключаемся
imap_expunge($imap);
imap_close($imap);
?>

обратите внимание, я в переменную «$server» добавил строку из двух частей, вторая чать в примере подключит вас к папке «Входящие», если вам надо выбрать другую папку — укажите свой путь, например:

INBOX|&BCEEPgRGBEEENQRCBDg- — это папка Входящие — Соцсети, записанная в кодировке UTF7-IMAP

список папок можно получить командой

$list = imap_list($imap, "{imap.yandex.ru}", "*");
if (is_array($list)) {
	foreach ($list as $val) {
		echo mb_convert_encoding($val, "UTF-8", "UTF7-IMAP")."\n";
		echo $val."\n\n";
	}
}

первой строкой будет выводится декодированное (читабельное) название, второй строкой исходное, которое и надо будет подставлять в свой скрипт выше

 Нет комментариев    10   25 дн   imap   mail   php   yandex

переносим пакеты Synology на другой раздел

Представьте, что у вас появился новый раздел synology и вы хотите переехать на него, освободив старый

имеем раздел

  • volume1 — старый
  • volume2 — новый

для начала перейдите в Центр пакетов, откройте настройки и укажите новый раздел хранения, чтобы с этого момента пакеты устанавливались на второй раздел (как в примере)

А что же делать с установленными пакетами? Удалить и установить заново не хотелось бы, т. к. потеряются все настройки.

Давайте мигрируем в ручную пакет «Hyper backup»

обратите внимание — пакет установлен на Том 1

для начала подключимся через ssh к серверу и посмотрим со стороны сервера

admin@server:~$ ls /volume1/\@appstore/
ActiveBackup  LogCenter    Perl    PHP7.2                      TextEditor
HyperBackup   Node.js_v12  PHP7.0  SynologyApplicationService  Virtualization

пакеты ставятся в папку «@appstore», такую же надо сделать на втором разделе (если ее ещё нет)

admin@server:~$ sudo mkdir /volume2/@appstore

далее останавливаем службу в Центре пакетов

на сервере перемещаем её на второй раздел

admin@server:~$ sudo mv "/volume1/@appstore/HyperBackup"/ "/volume2/@appstore"

затем удалим старый симлинк на приложение

admin@server:~$ sudo rm "/var/packages/HyperBackup/target"

и создадим новый

admin@server:~$ sudo ln -s "/volume2/@appstore/HyperBackup" "/var/packages/HyperBackup/target"

запускаем и видим, что пакет теперь установлен на Том 2

готово )

PS вы можете в процессе переноса словить ошибку Пакета, не спешите нажимать кнопку «Восстановить», это система не увидела симлинк target, обновите страницу или подождите, ошибка сама исчезнет, если вы всё по инструкции делали

PSS Если ошибка долго не исчезает, примените восстановление, но обратите внимание, чтобы местонахождение пакеты было на новом разделе

Proxmox — резервирование на Synology

Если вы хотите хранить бэкапы виртуальных машин не только на локальном носителе, но и на synology, самым простым способом будет подключить удаленную папку с Synology по протоколу NFS.

Сначала готовим Synology.

включаем протокол NFS («Панель управления» -> «Файловые службы» -> «NFS»)

включаем протокол NFS

Теперь создаём папку общего доступа Proxmox, обратите внимание, нам не нужно создавать дополнительные учётные записи пользователей, ограничение прав будет на уровни сетевого протокола, т. е. по ip.

при создании папки, я включил сжатие, это делать не обязательно, т. к. снапшоты можно сжимать со стороны Proxmox.

Теперь настроим права доступа, для этого откройте свойства папки общего доступа и перейдите в раздел «разрешения NFC»

создайте правило и укажите ip-адрес сервера Proxmox

на этом настройка со стороны Synology закончена.

Настройка сервера Proxmox.

выберите «Датацентр», а затем «Хранилище»

нажмите «Добавить» -> «NFS»

в открывшемся окне укажите

  • название хранилища, например «Synology-store»
  • ip-адрес Synology
  • в выпадающем списке выберите путь
  • и в «Содержимом» обязательно выберите все пункты

всё готово для резервного копирования

перейдите на интересующую вас машину, раздел «Резервная копия» выберите нужное хранилище и нажмите «Создать резервную копию сейчас»

в открывшемся окне проверьте назначение резервирования режим и тип сжатия

и сделайте бэкап

 Нет комментариев    23   2 мес   backup   nfs   proxmox   synology
Ранее Ctrl + ↓