404

Ooops... Page not found...

Please try reach it from the Search

VirtualBox-VMwarePlayer
Есть много статей, сравнивающих Virtualbox и продукты VMware, но я не смог найти ни одной, в которой были бы перечислены моменты, важные для моих задач из области промышленной автоматизации. Посему, вот мой, все еще растущий, список плюсов и минусов VMware Workstation Player v15.5.6 по сравнению с Virtualbox 6.1.10.
На данный момент VMware Workstation Player лучше подходит для моих целей.

Плюсы:

  • Автоматическая установка для стандартных дистрибутивов ОС.
  • Удобнее общие папки (через Samba).
  • Команда Compact Disk работает и довольно быстро.
  • Команда Defragment Disk.
  • Разбивка на части образов дисков делает архивирование VM более надежным.
  • Не происходит сбоев при загрузке из сети (например, virtualbox сбоит при загрузке Kali Linux Live Gnome через netbootxyz).
  • Возможно добавить жесткий диск в работающую виртуальную машину (SCSI).
  • Скопированные виртуальные машины делаются уникальными автоматически, без необходимости изменять какие-либо идентификаторы в файле конфигурации.
  • Надежнее работает OpenGL, но его версия старее — 1.1.
  • Можно разместить часть оперативную памяти гостевой системы на диске (в файле vmem) – по умолчанию включено. Чтобы отключить, добавьте prefvmx.minVmMemPct = “100” в /etc/vmware/config
  • Удобнее делить одну виртуальную машину между несколькими пользователями: у Virtualbox приходится сбрасывать права у файла vmname.vbox перед каждым переключением на нового пользователя.
  • Надежнее работает клавиатура (в VirtualBox часто стал залиптаь Alt в последнее время).

Минусы:

  • Не с открытым исходным кодом, запрещено для коммерческого использования.
  • Невозможно поставить виртуальную машину на паузу.
  • Менее удобно использовать несколько мониторов (разрешено только в полноэкранном режиме, проблемы с ПО для удаленного управления).
  • Нельзя работать в режиме headless (без графического интерфейса), например для удаленных клиентов. В Virtualbox достаточно использовать встроенную команду “VBoxHeadless -s”, а для VMware Workstation Player требуется установка VIX API, которое бесплатно, но нужно зарегистрироваться и дождаться проверки. Установка VIX достаточно сложная:
    sudo ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so /usr/lib/libcanberra-gtk-module.so
    sudo apt update
    sudo apt install build-essential open-vm-tools
    cd ~/Downloads
    wget https://download3.vmware.com/software/player/file/VMware-VIX-1.17.0-6661328.x86_64.bundle
    cp /usr/lib/vmware-installer/3.0.0/python/libpython3.7m.so.1.0 .
    sudo rm -rf /etc/vmware-installer
    sudo sh VMware-VIX-1.17.0-6661328.x86_64.bundle
    wget https://download3.vmware.com/software/player/file/VMware-Player-15.5.5-16285975.x86_64.bundle
    sudo sh VMware-Player-15.5.5-16285975.x86_64.bundle
    rm VMware-VIX-1.17.0-6661328.x86_64.bundle
    rm VMware-Player-15.5.5-16285975.x86_64.bundle
    rm libpython3.7m.so.1.0
    sudo gedit /usr/lib/vmware-vix/vixwrapper-config.txt
    Then add line:	player    19  vmdb  15.5.5 Workstation-14.0.0
    
    To start VM in headless mode:
    vmrun -T player start /home/common/vmware/Warez/Windows\ 10.vmx nogui
    

    После этого vmrun работает в gui режиме, но nogui не работает — Unknown error.

  • Сложно войти в BIOS или загрузочное меню. Чтобы добавить паузу, добавьте в файл .vmx:
    bios.bootDelay = "1000"
  • Переименовать ВМ сложнее: файлы нужно переименовывать вручную.
  • Не работают комбинации клавиш Super+стрелки курсора в VM Ubuntu 18.04 под хостом Ubuntu 18.04. C Ubuntu 20.04 работает.
  • Некоторые клавиши (стрелка курсора, ввод с цифровой клавиатуры) не работают в Anydesk и Teamviewer: Win10 – Anydesk/Teamviewer – Ubuntu 18 – VMware – Windows 10.
    Обходной путь: отключите Num Lock и используйте цифровую клавиатуру.

Варианты загрузки компьютера

Для низкоуровневого обслуживания компьютеров (работа с разделами и образами жесткого диска, восстановление данных, борьба с вирусами и кибератаками и т.п.), а также для установки операционной системы можно использовать загрузочные USB флешки, например: Ubuntu Live, Clonezilla, SergeyStrelec.

Однако, у этого решения есть недостатки:

  • инструментов и дистрибутивов разных много, поэтому приходится хранить много флешек или постоянно их перезаписывать, в том числе при обновлении версии утилиты;
  • компьютер может не поддерживать загрузку с флешки или она может быть запрещена;
  • можно элементарно забыть взять флешку в командировку;
  • большой парк компьютеров обслуживать флешкой намного медленнее, чем по сети.

Кроме того, при использовании Gigabit Ethernet, загрузка по сети быстрее.

Под Windows для загрузки по сети я обычно использовал tftpd32 — удобная портабельная маленькая, но достаточно мощная программа с открытыми исходниками. Однако я в последнее время стараюсь уходить от Windows, поэтому решил разобраться, как решить эту задачу под Linux.

Поиск выдает довольно много вариантов, но можно выделить netboot.xyz как зрелое решение с хорошей поддержкой. Уникальным преимуществом этого проекта является то, что там собраны и обновляются образы многих дистрибутивов ОС и утилит, которые можно загружать прямо из интернета или выкачать для кеширования на локальный диск. Есть загрузочное меню, которое можно редактировать и наращивать, в том числе через Git. Можно загружать ISO образы, однако не все: например, SergeyStrelec не пошел.

Самый удобный способ установки netboot.xyz — с помощью контейнера Docker. Это дает такие преимущества:

  • быстрая и удобная установка и конфигурация;
  • можно быстро запустить/остановить и удалить ПО;
  • высокая надежность и безопасность — изоляция от основной ОС, благодаря виртуализации, при этом используемые ресурсы (место на диске, память, процессор) намного меньше, чем при использовании виртуальной машины.

Docker контейнеров для netboot.xyz также существует несколько, наиболее зрелым представляется этот. Также вот его дополнительное описание.

Особенность этого контейнера — отсутствие своего DHCP сервера. Если DHCP уже есть в сети, например, в роутере, то следует использовать его во избежание конфликтов. Если же роутера нет, или не получается его настроить, то можно установить DHCP сервер на компьютере также с помощью Docker контейнера, например этого. Либо использовать другой контейнер c netbootxyz со встроенным DHCP, например этот. Либо использовать контейнер, в котором реализован PXE и DHCP без netboot.xyz, например этот.

Установка и настройка netbootxyz

Однако мы рассмотрим тут контейнер linuxserver/netbootxyz. Здесь приведены основные выжимки из официальной документации, а также кое-что, чего там не хватало.
Установка Docker для Ubuntu. Ставим вариант docker.io из официального репозитория Ubuntu — ранее он считался устаревшим, но недавно возобновилась его поддержка. Соответственно, другие варианты удаляем (если они не были установлены, не важно):

sudo apt-get update
sudo apt-get remove docker docker-engine docker.io docker-ce docker-ce-cli containerd.io
sudo apt install docker.io docker-compose
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Существует несколько способов запуска этого контейнера, самый удобный — с помощью docker-compose. Следует создать файл docker-compose.yml:

version: "2"
services:
  netbootxyz:
    image: linuxserver/netbootxyz
    container_name: netbootxyz
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./netbootxyz-config:/config
      - /media/d1/Dist/OS/netbootxyz:/assets # put here the path for the local downloaded distributives
    ports:
      - 3000:3000
      - 69:69/udp
      - 8080:80
    restart: unless-stopped

Далее отредактируйте в docker-compose.yml путь /media/d1/Dist/OS/netbootxyz — там будут храниться скачанные образы. Для удобства запуска можно еще создать файл start.sh в той же директории (закомментированные строки — для установки Windows 10):

#!/bin/bash
#mkdir /media/d1/Dist/OS/netbootxyz/win
#sudo mount -o loop /media/d1/Dist/OS/Windows10_orig/WIN10_64_En.ISO /media/d1/Dist/OS/netbootxyz/win
docker-compose up --build
#sudo umount /media/d1/Dist/OS/netbootxyz/win                                             

Для запуска контейнера — sh start.sh в терминале, для остановки — Ctrl-C.
Далее следует настроить DHCP сервер в роутере. Например, для OpenWRT (в нашем примере адрес компьютера с запущенным контейнером — 192.168.1.2):
Network -> DHCP and DNS -> TFTP Settings -> Enable -> Network boot image:
для Legacy BIOS:

netboot.xyz.kpxe,,192.168.1.2

для UEFI:

netboot.xyz.efi,,192.168.1.2

Уже можно пробовать загружаться по сети. Образы будут выкачиваться из интернета каждый раз при загрузке.
Для убыстрения загрузки, а также для работы без интернета (что часто бывает на промышленных объектах) следует закешировать образы на локальном диске. Для этого нужно открыть в браузере веб-интерфейс программы (http://localhost:3000/) и перейти по ссылке Local Assets в верхнем меню.

Я себе решил выкачать следующие утилиты (заняло 7.3 Гб):

Kali Live KDE
Ubuntu 19.10 Gnome/Default
Kaspersky Rescue Disk 
DBAN
4MLinux
Breakin
Rescatux
GParted Live
GRML
Clonezilla Debian stable

Также нужно отредактировать файлы меню, которые находятся в поддиректории ./netbootxyz-config/menus :

4mlinux.ipxe
clonezilla.ipxe
dban.ipxe
gparted.ipxe
kaspersky.ipxe
live-kali.ipxe
live-ubuntu.ipxe
utils-efi.ipxe
utils-pcbios.ipxe

В этих файлах нужно добавить такую строку после заголовка #!ipxe :

set live_endpoint http://192.168.1.2:8080

Установка Windows

Хотя такая опция и предусмотрена в netboot.xyz, но из коробки она не работает. Получилось допилить только для Windows 10 (возможно Windows 8.1 тоже заработает, не пробовал; но Windows 7 не заработал).

Итак, нужно отредактировать файл windows.ipxe:

  • добавить после заголовка строку:
set win_base_url http://192.168.1.2:8080/win
  • заменить везде по тексту строку “${win_base_url}/${win_arch}” на “${win_base_url}” — в моих дистрибутивах Windows не оказалось подпапки x86/x64.
  • заменить строку “kernel http://${boot_domain}/wimboot” на “kernel http://192.168.1.2:8080/wimboot”, а также скопировать файл wimboot из ./netbootxyz-config/menus/ в /media/d1/Dist/OS/netbootxyz/ — это нужно, чтобы было можно загружаться без интернета.

Далее нужно расшарить по сети (Samba) директорию /media/d1/Dist/OS/netbootxyz/win , в которую должен быть распакован или замонтирован (до запуска контейнера) образ ISO.
Далее, когда откроется первый экран установщика Windows (там где выбирается язык, формат времени и клавиатура), следует нажать Shift+F10 и выполнить следующие команды (взято отсюда):

wpeinit
net use S: \\192.168.1.2\Dist /user:guest password
S:\OS\netbootxyz\win\sources\setup.exe

Загрузка ISO образов

В меню netboot.xyz есть пункт “Test Distribution ISO”. Чтобы эта функция работала без интернета, нужно скопировать файл memdisk из ./netbootxyz-config/menus/ в /media/d1/Dist/OS/netbootxyz/ и отредактировать файл ./netbootxyz-config/menus/boot.cfg :
заменить

set memdisk http://${boot_domain}/memdisk

на

set memdisk http://192.168.1.2:8080/memdisk

За 20+ лет я перебрал много инструментов для работы с образами разделов: PowerQuest DriveImage, Norton Ghost, Acronis TrueImage, R-DriveImage, CloneZilla. Каждым из них пользовался довольно долго и считал хорошим инструментом, пока не находил новый.

Про мои последние изыски с CloneZilla можно почитать тут. Искать ему альтернативу я стал после того, как обнаружил, что CloneZilla не поддерживает шифрованные разделы LUKS/LVM. Точнее, можно сделать образ родительского раздела, но он будет занимать в несколько раз больше места и времени, потому как не учитывается фактически занятое место (sparse image). А поскольку я твердо решил шифровать диски на ноутбуке, то пришлось разбираться с альтернативами. В итоге, найденное решение понравилось мне больше, чем Clonezilla даже для нешифрованных разделов, и поэтому я использую его теперь всегда. Преимущества по сравнению с Clonezilla:

  • более наглядный синтаксис скриптов, удобнее указывать копируемый раздел и файл образа;
  • не нужна лишняя флешка для CloneZilla, можно обойтись одной универсальной Ubuntu Live USB;
  • быстрее работает и лучше сжимает;
  • автоматическое обновление (установка через apt install);

Нам понадобится загрузочная флешка c Linux. Ее можно сделать из дистрибутива Ubuntu с помощью программы Startup Disk Creator (sudo apt install usb-creator-gtk) или с помощью gnome-disks (он же Disks — выбрав в контектсном меню Restore partition image). Однако еще лучше просто распаковать файлы (включая скрытые) из ISO архива на флешку, отформатированную под FAT32, и установить флаги LBA и BOOT, например с помощью gparted (см. подробнее тут). Основное преимущество данного метода для нашей задачи — это возможность разместить файлы скриптов, которые запускают утилиту partclone, на этой же флешке. Дополнительное преимущество — можно записывать на эту флешку еще какие-нибудь файлы (Ubuntu занимает только 2 Гб). Но есть и недостаток — загружаться с такой флешки можно только в режиме UEFI. Режим Legacy Boot наверняка тоже можно было бы прикрутить какими-то манипуляциями, но я уже перешел полностью на UEFI, поэтому для меня не актуально.

Далее нужно создать два файла скриптов, например, createimage.sh и restoreimage.sh, и разместить их, например, в корне флешки. Вот содержимое файлов:

createimage.sh

#!/bin/sh
sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu bionic main universe' > /etc/apt/sources.list.d/partclone.list
sudo apt update
sudo apt --assume-yes install partclone

partclone.ext4 -N -c -s /dev/ubuntu-vg/root | gzip -c > /media/ubuntu/d1/Backup/Driveimg/Ubuntu18_blank.gz

restoreimage.sh

#!/bin/sh
sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu bionic main universe' > /etc/apt/sources.list.d/partclone.list
sudo apt update
sudo apt --assume-yes install partclone

gzip -c -d /media/ubuntu/d1/Backup/Driveimg/Ubuntu18_blank.gz | partclone.ext4 -N -r -o /dev/ubuntu-vg/root

Утилита partclone не установлена в Ubuntu Live USB по умолчанию, поэтому её приходится добавлять через apt install. Можно было бы вынести установку в отдельный скрипт, но как правило за одну сессию требуется только одно действие (либо создание, либо восстановление). В любом случае, повторное выполнение установки приведет только к одной-двум секундам задержки.
Чтобы каждый раз не устанавливать partclone, можно было бы установить Ubuntu прямо на флешку, но процедура это не простая, поэтому лучше пусть уж создание/восстановление образа будет идти на 10 секунд дольше. Так можно даже не держать отдельную флешку под Ubuntu Live USB, а делать ее быстро по необходимости.

Нужно будет заменить имена разделов и пути на ваши. При этом следут помнить, что разделы будут смонтированы в Live USB скорее всего по-другому, чем в обычной ОС. Шифрованные разделы монтируются после ввода пароля, когда кликаешь на них в Files.

Подготовка завершена. Теперь для работы с образами достаточно будет загрузиться с флешки, войти в зашированные разделы (файлы образов желательно тоже размещать на шифрованных разделах), запустить терминал (Ctrl-Alt-T) и выполнить:

sudo sh /cdrom/createimage.sh

или

sudo sh /cdrom/restoreimage.sh

Как вариант, можно отредактировать скрипты прямо из Ubuntu Live USB, сохранив результат в директории, открытой для записи, например в /home/ubuntu.

Clonezilla тоже использует partclone, но имеет ряд других наваротов. Так, например, он может сохранять и восстанавливать весь диск, таблицу разделов и т.п. Однако, проблемы с таблицей разделов очень редки, и можно в крайнем случае выполнить повторную установку ОС для её восстановления.

Однако утилиту Clonezilla, благодаря полной автоматизации и стабильности конфигурации, по-прежнему удобно использовать для сжимания дисков виртуальных машин. Для этого нужно отредактировать файл isolinux.cfg в ISO образе Clonezilla (подробнее тут и тут).

Ниже приведены рекомендации для эффективного использования электронной почты (в порядке убывания важности). Первые пять пунктов настоятельно рекомендуются, остальные желательны.

  1. Отвечайте на все деловые письма, содержащие вопросы или просьбы в течение двух рабочих дней, желательно в тот же день. Если не получается дать окончательный ответ, то пишите, что займетесь позже (желательно указывать когда). Если вопрос или просьба не сформулированы явно, то лучше уточнить, требуется ли ответ.
  2. Используйте отдельные ящики для:
    • подписок и регистраций в интернете;
    • личной переписки;
    • рабочей переписки.

    Это нужно для того, чтобы не смешивались неважные и важные письма, требующие ответа (см. п. 1). Также это позволит настроить разную частоту получения почты: важные ящики — чаще. Если почта отвлекает от важной работы, то стоит поставить период 1 час или реже даже для рабочей переписки.

  3. Пишите правильную тему письма. Тема письма должна дать получателю быстрое представление о чем письмо, а также облегчить поиск в будущем.
  4. Используйте ящик соответствующей организации. В почтовом адресе используется доменное имя, которое ведет на сайт организации. Это служит для рекламы организации, а также для проверки (пусть и не стопроцентной, см. п. 27), является ли отправитель членом организации.
  5. Вычищайте Inbox. Если оставлять всю почту в инбоксе, то высока вероятность забыть про какое-то письмо.
    Создайте папку Archive (на некоторых почтовых серверах она может уже быть), а для нагруженных рабочих ящиков также папки: _ToDo, _Waiting (знак подчеркивания нужен для того, чтобы папка была вверху списка и обращала на себя внимание).
    Очистка Inbox: письма, не требующие ответа, либо удаляйте (если совсем неважные), либо переносите в Archive (если могут понадобиться в будущем). Требующие ответа: если ответить можно за пару минут, то отвечайте сразу и переносите в Archive. Если дольше — переносите в _ToDo (либо оставляйте в Inbox, если такое бывает редко и не стоит заводиться с отдельной папкой). Если ждете ответа еще от кого-то, то в папку _Waiting (если такое случается редко, то можно ограничиться только папкой _ToDo).
    Обрабатывать папку Inbox оптимально раз в пол часа или час (настроить частоту получения писем с сервера, чтобы не отвлекаться). Папку _ToDo — после завершения текущей задачи, но не реже одного раза в день, а папку _Waiting — раз в неделю.
    Папки _ToDo и _Waiting не должны засоряться. Если задача большая, то лучше перенести её в отдельный органайзер (список дел или софт для управления проектами), а письмо перенести в Archive.
    В Archive можно также создать подпапки по проектам.
  6. Если вы уезжаете в отпуск или иным образом становитесь недоступными на течение нескольких дней, настройте автоответчик, если на вашем смартфоне не настроена рабочая электронной почты. Защитите свой смартфон с помощью блокировки экрана: PIN-код, жест или отпечаток пальца. В сообщении автоответчика укажите контактные данные человека, который вас заменяет.
  7. Используйте кнопку Reply All. Нажимайте Reply только если действительно нужно исключить остальных получателей из групповой переписки. Для формирования правильной привычки лучше использовать кнопку Reply All всегда, даже когда один получатель.
  8. Думайте, кого включать в переписку. Если человек важен для этой темы, то ставьте его в To. Если не очень важен, но заинтересован или может поучаствовать — в CC. Если вы подключаете в переписку новых людей, перепроверьте, не содержит ли история переписки какую-либо информацию, которую эти люди не должны знать или которая может их оскорбить.
  9. В начале письма укажите имя человека/людей, к которым вы обращаетесь, особенно в групповой переписке. Обычно это тот же человек/люди, которые находятся в поле «To». Если вы хотите обратиться более чем к 3 человекам, то лучше напишите «Hello colleagues» или «Hello Team» и используйте поле «To», чтобы указать, к кому вы обращаетесь. Не злоупотребляйте словом “Team”, используйте его только если все люди, к которым вы обращаетесь, действительно тесно работают вместе.
    Примеры: “Hello Firstname,”, “Firstname,”, “Hello Firstname Lastname”, “Hello Firstname L.”. Чтобы избежать путаницы, добавьте фамилию или начальную букву, если в переписке участвуют несколько человек с одинаковыми именами. Варианты “Dear Mr. LastName” и “Dear FirstName LastName” устарели и сейчас редко в электронной почте, но в некоторых случаях могут быть уместны.
  10. Не удаляйте цитирование (историю переписки). Мегабайты нынче дешевы, а история часто пригождается.
  11. Настройте автоподпись: имя, должность, организация, телефоны.
  12. Перед отправкой письма — перечитайте его. Используйте автоматический спеллчекер, а если письмо важное — Grammarly. Проверьте наличие вложений. Проверьте получателей.
  13. Настройте интеграцию почты и календаря для автоматического импорта почтовых приглашений в календарь.
  14. Отправляйте напоминание (follow up) через неделю (плюс-минус, в зависимости от срочности вопроса) ответом на изначальное письмо — не все, к сожалению, освоили п. 1. Во втором напоминании можно добавить в копию начальника получателя, или написать в мессенджер, или позвонить.
  15. Нумеруйте пункты, если пишете разные вопросы. Так получатель будет знать, что это уже другой вопрос. Также можно использовать визуальные разделители, например, ******************, если начинается совершенно новая порция текста.
  16. Для ответа с построчным цитированием — скопируйте нужный кусок текста из цитируемого письма и выделите его, например, серым цветом (нужен режим HTML). Свои построчные комментарии выделите, например, синим цветом.
  17. Вложения более 500 Кб отправляйте ссылкой на файлообменник (например, Google Drive или Dropbox). Если в групповой переписке есть люди, которым эти вложения скорее всего не нужны, то — более 100 Кб.
  18. Используйте эффективные форматы данных: docx, xlsx, pdf, png, jpg, mp3 и т.п. (неэффективные: doc, xls, bmp, wav, и т.п). Если много мелких файлов, то запакуйте их в zip. Однако некоторые почтовые сервера не пропускают архивы — в таком случае выложите на файлообменник.
  19. Пишите новое письмо ответом на старое (можно пользоваться поиском), если оно по той же теме или если получателям может помочь история переписки (см. п. 10). Можно отредактировать тему, если надо.
  20. Не отвечайте на старое письмо на совершенно другую тему только для того, чтобы использовать тех же получателей. Многие почтовые клиенты группируют письма по внутреннему идентификатору (не по теме), поэтому в одну группу попадут несвязанные письма.
  21. Добавляйте получателей в адресную книгу, если это не делает почтовый клиент автоматически. При написании письма — выбирайте получателей из адресной книги. Многие почтовые клиенты подсказывают при наборе первых букв.
  22. Там где уместно — используйте расширенное форматирование HTML: таблицы, жирный шрифт, цвет текста, шрифты. Желательно немного уменьшать размер встроенных картинок, чтобы они не загромождали текст.
  23. Пишите в теме или в начале письма аббревиатуру “FIY” если письмо не требует ответа (см. п. 1), а служит только для информации.
  24. Большинство людей не любят читать длинные письма. Если тема обширная/сложная, то лучше создать облачный документ (Google Doc, Confluence, Wiki, и т.п.), накидать туда тезисы и обсудить этот документ на звонке, а потом отредактировать документ по итогам разговора. Также имеет смысл созвониться или встретиться, если переписка даже короткими письмами затягивается.
  25. Сервис электронной почты не гарантирует и не контролирует доставку или прочтение сообщений. Очень редко, но сообщения могут не дойти, или дойти очень поздно. Для очень важных и/или срочных сообщений проверьте доставку и прочтение с помощью телефонного звонка или чата.
  26. Можно настроить фильтры, чтобы определенные неважные письма автоматически попадали в отдельную папку, которую можно разбирать реже. Также письма от начальства или важных клиентов можно отправлять фильтрами в отдельную важную папку.
  27. Отправитель электронной почты может быть сфальсифицирован, если не используется цифровая подпись. Легко создать поддельное сообщения с произвольным отправителем. Если у вас есть какие-либо сомнения, свяжитесь с отправителем, чтобы подтвердить его или ее личность. Для этой цели вы можете использовать тот же адрес электронной почты, а также другой канал связи. Фальсифицировать отправителя гораздо проще, чем получить доступ к почтовому ящику.
  28. Содержимое сообщений электронной почты может быть прочитано другими при передаче, если они не зашифрованы. Поэтому не следует отправлять сообщения, содержащие конфиденциальную или критически важную для бизнеса информацию в текстовом формате. Вы также должны проявлять осторожность при отправке важной информации, такой как номера кредитных карт и информация об учетной записи, поскольку эта информация может быть использована злоумышленниками.
  29. Содержание сообщений может быть изменено во время передачи. Если ваш корреспондент не использует цифровую подпись, вы не можете быть уверены в подлинности полученных вами сообщений.
  30. В некоторых почтовых клиентах нужно настроить заголовок ответов (Outlook style) для большей наглядности и информативности: разделительная черта, From, Sent, To, Subject.
  31. В некоторых почтовых клиентах нужно настроить автоматическое цитирование, чтобы оно шло после подписи в вашем ответе.
  32. Удаляйте из корзины письма старше двух месяцев. Удаляйте письма старше 10 лет в папке Archive. Если есть ограничения на хостинге, то переносите старые письма из Archive на Gmail.

Недавно у меня стала задача проверить Modbus TCP сервер. Перебрал несколько утилит-клиентов, больше всего понравилась шнайдеровская:
https://www.schneider-electric.com/en/faqs/FA180037/
Работает также с Modbus RTU через COM-порт. Единственный недостаток — работает только с дефолтным портом 502.

С возможностью задания своего порта понравилась утилита:
http://easymodbustcp.net/en/
Немного менее удобный интерфейс и должен быть установлен .Net framework, но зато есть исходники на C#, Java, Python и DLL-ка на C# — можно использовать в своих программах.

Вот прямая ссылка на бинарники: https://sourceforge.net/projects/easymodbustcp/files/latest/download

Modscan – еще одна полезная утилита, которая умеет делать непрерывное циклическое чтение:
https://www.win-tech.com/html/demos.htm