Можно ли отправлять текстовые сообщения между двумя пользователями одной локальной сети, но первая работает под управлением Windows с cmd, а вторая — под управлением Linux / Unix?
Я не ищу службы мгновенных сообщений. Я хотел бы ввести в оболочке Linux что-то вроде
write user@192.168.x.x:port message
так что пользователь Windows может прочитать в своем окне cmd текст message
; тогда пользователь Windows сможет ответить другой командой. Является ли это возможным?
Я читал о команде Windows, msg
но она не работает во всех версиях ОС. Что-нибудь еще?
Вместо PuTTY я хотел бы использовать оболочку Linux и Windows cmd.
Ответы:
В Unix: nc -l 192.168.1.10 32849
В Windows: telnet 192.168.1.10 32849
Где 32849 — произвольный порт, разрешенный в правилах брандмауэра, а IP — это прослушивающий IP-адрес Unix-машины. nc
утилита netcat
Идея из ответа ProjectDP : Netcat на Linux служит Telnet на победу . Однако необходимо -p
и разные IP-адреса на двух компьютерах:
-
В Linux:
netcat -l 10.0.0.2 -p 14415
— если у вас Windows 10.0.0.2 -
В Windows:
telnet 10.0.0.1 14415
— если ваш linux на 10.0.0.1 -
Для выхода из телнета нажмите
^]
что означает Ctrl+ , ]а затем печататьq
. -
Выбрать свой произвольный порт как
14415
удобный столик можно у Дэвида Вереба .
Однако на win7 x64 мне сначала пришлось включить telnet, короче говоря:
-
c:windowssysnativedism.exe /online /norestart /logpath:"c:foo.txt" /enable-feature /ignorecheck /featurename:"TelnetClient"
-
Проблема в первоначальной попытке заключалась в том, что
pkgmgr
пытались использовать 32-битныеdism
и ныли для 64-битных. У меня естьsysnative
идея от Османа Шенера . -
Устанавливается в
c:windowssysnativetelnet.exe
. Я положилc:windowssysnative
в переменную среды PATH сsysdm.cpl
. -
Если у вас есть DeVuan или Ubuntu для Linux,
sudo apt-get install netcat-traditional
Чат выглядел так:
Как NET SEND {name1 | * | /DOMAIN[:name] | /USERS} message
на машине с Windows, и echo "message" | smbclient -M name2
на коробке с Linux? name1 и name2 являются именами netbios машин.
Существует интересный инструмент, который позволяет выполнять команды Windows из Linux, имя таково winexe
.
Таким образом, вы можете отправить сообщение с того же компьютера на консоль, набрав:
winexe -U domain/user%password --interactive=1 //WindowsMachine "msg console "Your message goes here.""
Как вы можете видеть, ответ Нолети намного проще, но с помощью Winexe вы также можете открыть калькулятор или все, что захотите, в этой машине. Мы использовали его для автоматической установки на компьютерах с Windows из пакетного скрипта в Linux. Довольно круто и экономит время …
0
0
Не подскажите как послать всплывающее сообщение с linux сервера на Windows машину в локальной сети. Хотелось бы послать сообщение с русскими буквами, заранее подготовленное в файле linux сервера.
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
cat /tmp/file.txt | smbclient -M machine_name
SlavikSS ★★
(15.06.06 10:19:26 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
А как быть если у меня пользователи в Windows2000
При запуске команды
cat /tmp/file.txt | smbclient -M machine_name
выдает
session request failed
kiotr
(15.06.06 12:15:00 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
У них должен работать сервис messenger.
VovanE ★
(15.06.06 14:14:11 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
В локальной сети между Windows 2000 машинами работает команда
net send ip_mashine «сообщение»
Значит служба приема сообщений работает
kiotr
(15.06.06 15:18:16 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
Пропиши в файле hosts имя и IP windows машины, посмотри в службах винды запущен ли microsoft messanger!
(у меня вариант с smbclient работает!)
SlavikSS ★★
(15.06.06 15:32:31 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
Все сделал и работает но как мне сообщение посылать в windows кодировке чтобы оно было читабельно
kiotr
(15.06.06 17:02:08 MSD)
- Показать ответ
- Ссылка
Re: Отправка всплывающего сообщения на Windows машину
Не посылается текст с русскими буквами
запускаю команду
echo «сообщение» | iconv -f UTF-8 -t WINDOWS-1251 | smbclient -M name_mashine
И сообщение на windows машину приходит одним прочерком
В консоле на linux у меня кодировка UTF-8
В Windows2000 по умолчанию я думаю кодировка Windows-1251
kiotr
(16.06.06 07:59:54 MSD)
- Ссылка
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Содержание
- Как передавать и обмениваться файлами между Windows и Linux
- 4 способа передачи файлов из Windows в Linux
- 1. Совместное использование сетевых папок между Linux и Windows
- 2. Скопируйте файлы через SSH из Windows в Linux
- 3. Как перенести файлы из Linux в Windows, используя FTP
- 4. Делитесь файлами между Linux и Windows с помощью Resilio Sync
- Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Re: Отправка всплывающего сообщения на Windows машину
- Отправить сообщение другому пользователю на сервере в Unix/Linux
- -=== СПОСОБ 1 — Используем echo команду ==-
- -=== СПОСОБ 2 — Используем write команду ==-
- -=== СПОСОБ 3 — Используем wall команду ==-
- linux-notes.org
- Отправить сообщение другому пользователю на сервере в Unix/Linux
- -=== СПОСОБ 1 — Используем echo команду ==-
- -=== СПОСОБ 2 — Используем write команду ==-
- -=== СПОСОБ 3 — Используем wall команду ==-
- Добавить комментарий Отменить ответ
- unixforum.org
- обмен сообщениями linux-windows (какая программа)
- обмен сообщениями linux-windows
- Re: обмен сообщениями linux-windows
- Re: обмен сообщениями linux-windows
- Re: обмен сообщениями linux-windows
- Re: обмен сообщениями linux-windows
- Re: обмен сообщениями linux-windows
Как передавать и обмениваться файлами между Windows и Linux
Копирование данных с ПК с Windows в Linux — или в другом направлении — поначалу может показаться пугающим. В конце концов, это то, что кажется простым, но оказывается сложным.
По правде говоря, делиться файлами из Windows в Linux легко, но только если вы знаете, как это сделать. Готовы выяснить?
4 способа передачи файлов из Windows в Linux
Перенос данных между операционными системами Windows и Linux проще, чем вы думаете. Мы собрали пять способов сделать это:
- Поделиться сетевыми папками
- Передача файлов с FTP
- Безопасное копирование файлов через SSH
- Обмен данными с помощью программного обеспечения для синхронизации
С помощью каждого из этих методов вы сможете легко (а в некоторых случаях легко) перемещать файлы между операционными системами.
Давайте посмотрим на них по очереди и выясним, какой из них подходит вам больше всего.
1. Совместное использование сетевых папок между Linux и Windows
Наиболее очевидный способ обмена файлами между Linux и Windows — это использование сетевых ресурсов. Этот термин относится к папкам на одном ПК, которые доступны пользователям на других компьютерах. В сети только для Windows это легко настроить. Добавление устройства Linux немного усложняет ситуацию, хотя это можно преодолеть.
Начиная с Windows, щелкните правой кнопкой мыши значок сетевого подключения на панели задач и выберите «Открыть сеть и настройки Интернета». Далее нажмите «Параметры общего доступа» и включите текущий профиль.
- Включить обнаружение сети
- Включите общий доступ к файлам и принтерам
Нажмите «Сохранить изменения» для подтверждения, затем перейдите в папку, содержащую файлы, которыми вы хотите поделиться. Щелкните правой кнопкой мыши папку, выберите «Свойства» и откройте вкладку «Общий доступ». Здесь нажмите «Расширенный общий доступ», затем установите флажок «Поделиться этой папкой».
Вы можете управлять доступом к папке через разрешения; это относится к локальным пользователям Windows, а не к сетевым устройствам.
Нажмите OK, чтобы подтвердить изменение, затем откройте вкладку Безопасность в Свойствах. Настройте это, чтобы отразить настройки в поле Полномочия ранее. Вам не нужно делать слишком много здесь, так как Windows 10 должна включать группу под названием Authenticated Users. Это используется для удаленного доступа к вашему компьютеру.
Снова нажмите ОК, когда вы закончите.
Чтобы найти общий ресурс Windows на ПК с Linux, просто откройте браузер файлов и выберите «Сеть». Отсюда перейдите к папке, размещенной в Windows, и начните обмен данными.
Доступ к общему ресурсу Linux из Windows
Чтобы переместить данные в другом направлении, вам нужно установить Samba на ваш компьютер с Linux.
Затем установите имя пользователя для общего ресурса samba.
Вам будет предложено ввести пароль для новой учетной записи (не используйте для этого «имя пользователя»!).
Затем создайте каталог для обмена данными.
Затем отредактируйте файл smb.conf в своем текстовом редакторе:
Добавьте следующее в конец файла конфигурации:
Внесите необходимые изменения в соответствии со своими потребностями, затем нажмите Ctrl + X, чтобы выйти, и нажмите Y, чтобы сохранить. Далее перезапустите Samba:
После этого вы сможете получить доступ к общему ресурсу из Windows. Откройте проводник или браузер и введите IP-адрес или имя хоста удаленного устройства Linux, а затем имя папки. В нашем примере это
2. Скопируйте файлы через SSH из Windows в Linux
С включенным SSH на вашем устройстве Linux вы можете отправлять данные через командную строку с одного компьютера на другой. Однако, чтобы это работало, вам нужно настроить SSH-сервер на вашем Linux-компьютере.
Начните с открытия терминала и обновления и обновления ОС.
После завершения установите сервер SSH. Сервер OpenSSH — хороший вариант.
Подождите, пока он установит. Чтобы в любой момент проверить, работает ли сервер OpenSSH, используйте
Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Это требует загрузки инструмента PSCP в вашу систему Windows для запуска вместе с PuTTY. Найти оба на домашней странице PuTTY.
Обратите внимание, что в то время как PuTTY нужно будет установить, PSCP — нет. Однако его следует сохранить в корне диска C: или настроить как переменную среды. Вам также необходимо подтвердить IP-адрес устройства Linux. Отметьте это на коробке с
После установления соединения вы можете отправлять данные следующим образом:
Перед началом передачи вам будет предложено ввести пароль для компьютера с Linux.
Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:
Обратите внимание на одиночный период в конце — включите его, иначе перевод не будет работать.
3. Как перенести файлы из Linux в Windows, используя FTP
Можно также использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Передача файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на набранные команды.
Опять же, сервер SSH должен быть запущен на компьютере с Linux перед началом работы. Вы также должны убедиться, что вы установили приложение FTP, такое как FileZilla, которое поддерживает SFTP.
Чтобы использовать этот метод, запустите FileZilla, затем откройте Файл → Менеджер сайтов. Создайте новый сайт, заботясь о том, чтобы установить протокол на SFTP. Добавьте целевой IP-адрес в Host, затем имя пользователя и пароль, установив тип входа в систему как Нормальный.
Нажмите Готово, когда будете готовы, затем используйте интерфейс FTP для перетаскивания файлов между двумя компьютерами.
4. Делитесь файлами между Linux и Windows с помощью Resilio Sync
Другим вариантом, который вы должны рассмотреть, является программа синхронизации файлов. Обычно они кроссплатформенные и используют зашифрованный ключ для управления соединением между устройствами.
Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Установите это на втором ПК, и ваши данные будут синхронизированы. Для этого есть два хороших варианта:
- Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически на любой платформе, о которой вы только можете подумать. Есть платная версия, но бесплатного варианта достаточно для синхронизации двух устройств.
- SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.
Совместное использование файлов между Windows и Linux очень просто
Если вы новичок в Linux, или вы находите Windows незнакомой, обмен данными между ними проще, чем вы думаете.
Мы рассмотрели несколько методов. Мы рекомендуем вам попробовать все из них и решить, какой из них вам наиболее удобен.
Отправка всплывающего сообщения на Windows машину
Не подскажите как послать всплывающее сообщение с linux сервера на Windows машину в локальной сети. Хотелось бы послать сообщение с русскими буквами, заранее подготовленное в файле linux сервера.
Re: Отправка всплывающего сообщения на Windows машину
cat /tmp/file.txt | smbclient -M machine_name
Re: Отправка всплывающего сообщения на Windows машину
А как быть если у меня пользователи в Windows2000 При запуске команды cat /tmp/file.txt | smbclient -M machine_name выдает session request failed
Re: Отправка всплывающего сообщения на Windows машину
У них должен работать сервис messenger.
Re: Отправка всплывающего сообщения на Windows машину
В локальной сети между Windows 2000 машинами работает команда net send ip_mashine «сообщение» Значит служба приема сообщений работает
Re: Отправка всплывающего сообщения на Windows машину
Пропиши в файле hosts имя и IP windows машины, посмотри в службах винды запущен ли microsoft messanger!
(у меня вариант с smbclient работает!)
Re: Отправка всплывающего сообщения на Windows машину
Все сделал и работает но как мне сообщение посылать в windows кодировке чтобы оно было читабельно
Re: Отправка всплывающего сообщения на Windows машину
Re: Отправка всплывающего сообщения на Windows машину
Не посылается текст с русскими буквами запускаю команду echo «сообщение» | iconv -f UTF-8 -t WINDOWS-1251 | smbclient -M name_mashine И сообщение на windows машину приходит одним прочерком В консоле на linux у меня кодировка UTF-8 В Windows2000 по умолчанию я думаю кодировка Windows-1251
Отправить сообщение другому пользователю на сервере в Unix/Linux
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.
Для начала, посмотрим кто находится в системе:
Так же, можно использовать:
Для примера, я залогинился на сервер дважды от одного и того же юзера.
-=== СПОСОБ 1 — Используем echo команду ==-
Можно отправить сообщение другому пользователю следующим образом:
- echo -e «33[0;31m Can I reboot this server… OK? 33[0m» — Команда.
- /dev/pts/1 — Это открытая сессия пользователя.
PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.
-=== СПОСОБ 2 — Используем write команду ==-
Так же, можно использовать следующий пример:
- captain — Юзер которому нужно отправить сообщение.
- pts/1 — Сессия данного юзера.
Напишите сообщение и отправьте его через нажатие ‘Enter’, и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать утилиту write.
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Очень простая и полезная тулза.
-=== СПОСОБ 3 — Используем wall команду ==-
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.
linux-notes.org
Отправить сообщение другому пользователю на сервере в Unix/Linux
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.
Для начала, посмотрим кто находится в системе:
Так же, можно использовать:
Для примера, я залогинился на сервер дважды от одного и того же юзера.
-=== СПОСОБ 1 — Используем echo команду ==-
Можно отправить сообщение другому пользователю следующим образом:
- echo -e «33[0;31m Can I reboot this server… OK? 33[0m» — Команда.
- /dev/pts/1 — Это открытая сессия пользователя.
PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.
-=== СПОСОБ 2 — Используем write команду ==-
Так же, можно использовать следующий пример:
- captain — Юзер которому нужно отправить сообщение.
- pts/1 — Сессия данного юзера.
Напишите сообщение и отправьте его через нажатие ‘Enter’, и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать утилиту write.
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Очень простая и полезная тулза.
-=== СПОСОБ 3 — Используем wall команду ==-
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D
Можно написать сообщение в файл (предположим — send_to_user.txt):
И потом, чтобы отправить данное послание, используйте:
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
обмен сообщениями linux-windows (какая программа)
Модератор: /dev/random
обмен сообщениями linux-windows
Сообщение andreas90 » 27.06.2008 09:07
Re: обмен сообщениями linux-windows
Сообщение Ben Aceler » 27.06.2008 09:28
Re: обмен сообщениями linux-windows
Сообщение fed71 » 27.06.2008 09:31
А что требуется то? Если чисто внутренняя реализация то посмотри
Я не знаю кто я. Не помню ни серии своей, ни инвентарного номера.
Re: обмен сообщениями linux-windows
Сообщение andreas90 » 27.06.2008 09:33
На репозитарии это где?
А что требуется то? Если чисто внутренняя реализация то посмотри
Re: обмен сообщениями linux-windows
Сообщение eddy » 27.06.2008 09:41
Re: обмен сообщениями linux-windows
Сообщение mf_doom » 27.06.2008 10:31
Тю а ты что считаешь что только к внешним jabber серверам коннектиться можно.
У меня на офисе openfire в локалке стоит и красота, правда пользователей значительно больше чем 2
Я пытаюсь найти способ отправки сообщения (например, всплывающего сообщения) с одного компьютера на другой. оба используют Ubuntu. Уже пробовал smbclient способ, но это работает только между Linux-ПК на ПК с Windows. Мне нужен способ отправки сообщений с компьютера с Ubuntu на другой компьютер с Ubuntu. Аналогично способу Windows Net Send.
задан
6 October 2017 в 21:26
поделиться
3 ответа
Установите ssh
и libnotify-bin
(через терминал):
sudo apt-get install ssh libnotify-bin
на оба компьютера.
(Возможно, у вас уже установлен libnotify-bin
. Мой уже установил.)
Затем SSH (через терминал) на другой компьютер:
ssh <user name>@<ip address>
А затем, когда вы войдете в систему, введите:
export DISPLAY=:0
notify-send "Title of message" "message text"
Счастливая отправка сообщений!
.
(или пугающий XD)
ответ дан Skybbles
6 October 2017 в 21:26
поделиться
Используйте nc
для отправки текста между двумя компьютеры в той же сети (без шифрования).
На принимающем компьютере выполните
nc -l 3333
На отправляющем компьютере выполните
nc 192.168.1.XX 3333
, затем просто начните печатать, и появится текст на другом компьютере (после нажатия клавиши ВВОД), пока не нажмете ctlr + c.
Вы можете получить IP принимающего компьютера с помощью hostname -I
(запустите это на принимающем компьютере).
Вам не обязательно использовать порт 3333, используйте любое число от 1025 до 65535 включительно.
Помните, что это не зашифровано . Любой компьютер в вашей сети может видеть, какой текст вы передаете.
ответ дан Boris
6 October 2017 в 21:26
поделиться
Я читал, что вы хотели сделать это без SSH, я думаю, что у меня есть решение: netcat
[nc]
По умолчанию он поставляется с Ubuntu.
Сначала нам нужен «демон» для запуска в фоновом режиме. Во-вторых, нам нужна программа, которая сделает всплывающее предупреждение. У меня установлена zenity
. Если нет, пожалуйста, установите его или отредактируйте скрипт, чтобы использовать все, что вам нравится [e.x. xmessage
, но это уродливо]. Далее вставьте это в ‘daemon.sh’:
#!/bin/bash
port=3333
nc -l $port | while read msg; do zenity --info --text "$msg"; done
Теперь сделайте его исполняемым chmod +x daemon.sh
, теперь запустите его в фоновом режиме: ./daemon.sh &
Теперь ты закончил! Ну, на самом деле вам нужно сделать это на каждом компьютере. Вы также захотите автоматизировать запуск демона. Откройте из меню «startup» приложения и добавьте свой скрипт. После этого, чтобы отправить сообщение на другой компьютер, введите:
nc 192.168.1.X 3333
, затем введите ваше сообщение и нажмите Enter. В каждой строке ввода появится сообщение. Для выхода из nc нажмите Ctrl +C, или Ctrl +D.
Просто убедитесь, что 192.168.1.X заменен на реальный локальный IP другого ПК. Вы можете использовать ifconfig
для поиска IP-адреса]
Вы также можете сделать другой скрипт, скажем, message.sh
. В этом случае вставьте:
#!/bin/bash
nc 192.168.2.X 3333
Затем chmod +x message.sh
. Затем вы можете просто набрать ./message.sh
, затем наберите ваше сообщение, затем введите, и ваше сообщение будет отправлено. Также, теперь, когда я подумал об этом, вы можете добавить звуковое уведомление. Я бы порекомендовал mplayer
, это CLI медиаплеер. Это не должно быть слишком сложно выяснить, но если у вас есть вопросы, пожалуйста, не стесняйтесь спрашивать!
ответ дан Matt
6 October 2017 в 21:26
поделиться
Другие вопросы по тегам:
Похожие вопросы:
В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.
Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.
В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:
- Для Debian/Ubuntu:
# sudo apt-get install mailutils
- Для CentOS/Redhat установите пакет с помощью yum (dnf)
# dnf install mailx
Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail.
Обратите внимание, что на вашем хосте обязательно должен быть установлен какой-нибудь почтовый сервер. Например, postfix или sendmail:
# yum install sendmail –y
Основные опции при отправке писем:
- -s — Subject:
- -c — Cc:
- -b — BCc:
- -r — From:
Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:
# echo "Это тестовое письмо" | mail -s "Проверка отправки почты" [email protected]
Проверьте, что письмо доставлено в ящик.
Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:
# cat /var/log/maillog
Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.
Чтобы указать другого отправителя письма (mail from), используйте ключ -r:
# echo "Это тестовое письмо 2" | mail -s "Проверка отправки почты 2" -r [email protected] [email protected]
Если нужно отправить письмо нескольким получателям, перечислите их через запятую:
# echo "Это тестовое письмо 3" | mail -s "Проверка отправки почты 3" -r [email protected] [email protected], [email protected]
Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:
# echo "Это тестовое письмо 4" | mail -s "Проверка отправки почты 4" -r [email protected] -c [email protected]
Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.
# echo "Файл во вложении" | mail -s "Проверка вложения" -a /root/test.txt -r [email protected] [email protected]
В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:
# echo "Вложены 2 файла " | mail -s "Вложение нескольких файлов " -a /root/test.txt -a /root/message.log -r [email protected] [email protected]
Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :
# echo "Messages smtp server" | mail -s "Test smtp server" -S smtp="build-centos.ru:25" -r [email protected] [email protected]
Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password.
# echo "Test auth mailbox" | mail -v -s "Test auth" -S smtp="build-centos.ru:25" -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="password" -S [email protected] [email protected]
При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.
Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:
-S smtp-use-starttls
-S ssl-verify=ignore
Чтобы не задавать все параметры в командной строке, вы можете указать их в файле ~/.mailrc. Например, добавьте в этот файл такие строки:
set smtp-use-starttls set ssl-verify=ignore set smtp=smtp://smtp.gmail.com:587 set smtp-auth=login set [email protected] set smtp-auth-password=sdf#23ddsH3sq9- set from= [email protected]
Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:
$ echo "Test mail " | mail -v -s "Testing gmail auth" [email protected]
Вы можете использовать команду отправки почты для в своих bash скриптом. Например, создайте следующий скрипт, которые будет отправлять вам информацию по свободному месту на дисках:
#!/bin/bash du -h | mail -s "Server 1 disk usage" [email protected]
Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.
0 0 * * * /home/root/freespace.sh
Еще одна популярная утилита для отправки почты в Linux это mutt:
# sudo apt-get install mutt
— для Debian/Ubuntu
# yum install mutt -y
— для CentOS/Redhat
Синтаксис mutt такой же, как и у mail/ mailx:
# echo "Text messages mutt" | mutt -s "Test mutt" [email protected]
Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).
Netcat (или nc) — это утилита командной строки, которая читает и записывает данные через сетевые подключения, используя протоколы TCP или UDP.
Netcat (или nc) — это то один из самых мощных инструментов в арсенале сетевых и системных администраторов, который считается швейцарским армейским ножом сетевых инструментов.
Netcat является кроссплатформенным и доступен для Linux, macOS, Windows и BSD. Вы можете использовать Netcat для отладки и мониторинга сетевых подключений, сканирования открытых портов, передачи данных в качестве прокси-сервера и многого другого. Пакет Netcat предустановлен в MacOS и популярных дистрибутивах Linux, таких как Ubuntu.
Синтаксис Netcat
Самый основной синтаксис утилиты Netcat имеет следующий вид:
В Ubuntu вы можете использовать либо netcat
или nc
. Обе они являются символическими ссылками на версию Netcat для openBSD.
По умолчанию Netcat пытается установить TCP-соединение с указанным хостом и портом. Если вы хотите установить UDP-соединение, используйте -u
опцию:
Сканирование портов
Сканирование портов является одним из наиболее распространенных способов использования Netcat. Вы можете сканировать один порт или диапазон портов.
Например, для поиска открытых портов в диапазоне 20-80 вы должны использовать следующую команду:
nc -z -v 10.10.8.8 20-80
Опция указывает
-z - nc
на сканирование только для открытых портов, без отправки каких — либо данных для них и -v
возможность предоставить более подробную информацию.
Вывод будет выглядеть примерно так:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Если вы хотите распечатать только строки с открытыми портами, вы можете отфильтровать результаты с помощью команды grep .
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Вы также можете использовать Netcat для поиска серверного программного обеспечения и его версии. Например, если вы отправляете команду «EXIT» на сервер по стандартному SSH-порту 22 :
echo "EXIT" | nc 10.10.8.8 22
Вывод будет выглядеть примерно так:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.
Для сканирования портов UDP просто добавьте -u
параметр в команду, как показано ниже:
nc -z -v -u 10.10.8.8 20-80
В большинстве случаев Nmap лучше, чем Netcat, для сканирования сложных портов.
Отправка файлов через Netcat
Netcat можно использовать для передачи данных с одного хоста на другой, создав базовую модель клиент / сервер.
Это работает, настроив Netcat на прослушивание определенного порта (используя -l
опцию) на принимающем хосте, а затем установив обычное TCP-соединение с другим хостом и отправив файл через него.
На приеме запустите следующую команду, которая откроет порт 5555 для входящего соединения и перенаправит вывод в файл:
nc -l 5555 > file_name
С узла-отправителя подключитесь к узлу-получателю и отправьте файл:
nc receiving.host.com 5555 < file_name
Для передачи каталога вы можете использовать tar для архивирования каталога на исходном хосте и для извлечения архива на конечном хосте.
На принимающем хосте настройте средство Netcat на прослушивание входящего соединения через порт 5555. Входящие данные передаются в команду tar, которая извлечет архив:
nc -l 5555 | tar xzvf -
На отправляющем хосте упакуйте каталог и отправьте данные, подключившись к nc
процессу прослушивания на принимающем хосте:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Вы можете наблюдать за прогрессом передачи на обоих концах. После завершения введите, CTRL+C
чтобы закрыть соединение.
Создание простого сервера чата
Процедура создания онлайн-чата между двумя или более хостами такая же, как и при передаче файлов.
На первом хосте запустите процесс Netcat для прослушивания порта 5555:
nc -l 5555
Со второго хоста выполните следующую команду для подключения к порту прослушивания:
nc first.host.com 5555
Теперь, если вы наберете сообщение и нажмете, ENTER
оно будет показано на обоих хостах.
Чтобы закрыть соединение, введите CTRL+C
.
Выполнение HTTP-запроса
Несмотря на то, что есть намного лучшие инструменты для HTTP-запросов, такие как curl , вы также можете использовать Netcat для отправки различных запросов на удаленные серверы.
Например, чтобы получить справочную страницу Netcat с веб-сайта OpenBSD, введите:
printf "GET /nc.1 HTTP/1.1rnHost: man.openbsd.orgrnrn" | nc man.openbsd.org 80
Полный ответ, включая заголовки HTTP и код HTML, будет напечатан в терминале.
Вывод
Из этого руководства вы узнали, как использовать утилиту Netcat для установки и тестирования соединений TCP и UDP.
Для получения дополнительной информации посетите справочную страницу Netcat и прочитайте обо всех других мощных параметрах команды Netcat.