я пытаюсь использовать [клавишу F5] и [F6], чтобы отправить СМС с компьютера на телефон через Gmail когда мой компьютер входит или выходит из сети. Основной скрипт написан на Perl и скриптов в папках по сути фантики вокруг него. Вот скрипт на Perl, ~user/bin/laptopSMS.pl:
#!/usr/bin/perl
use strict;
use warnings;
use Email::Send;
use Email::Send::Gmail;
use Email::Simple::Creator;
my $addy = q{myEmail@gmail.com};
my $pass = q{myPass};
my $sms = q{myPhoneNumber@tmomail.net};
my $email = Email::Simple->create(
header => [
From => $addy,
To => $sms,
Subject => "$ARGV[0]",
],
body => "$ARGV[1] / $ARGV[2]",
);
my $sender = Email::Send->new(
{ mailer => 'Gmail',
mailer_args => [
username => $addy,
password => $pass,
]
}
);
eval { $sender->send($email) };
die "Error sending email: $@" if $@;
следующий скрипт - /etc/network/if-up.d/99postconnect_laptopSMS:
#!/bin/bash
set -e
if [ "$IFACE" == "wlan0" ]; then
ipaddr=`ip addr | grep inet[^6] | grep -v 127.0.0.1 | awk {'print $2'} | sed 's!/[0-9]*!!g'`
ssid=`iwgetid -r`
~user/bin/laptopSMS.pl "connected" "$ssid" "$ipaddr"
fi
это прекрасно работает, и я получаю текстовое сообщение всякий раз, когда мой телефон попадает в сеть; соответствующие if-down.d скрипт для отправки "отключить" сигнал, однако, не:
#!/bin/bash
set -e
if [ "$IFACE" == "wlan0" ]; then
~user/bin/laptopSMS.pl "disconnect" "disconnect" "disconnect"
fi
это не выполняется; я попробовал поставить следующий код в скрипт, чтобы увидеть, если все на самом деле работает:
ifdowntest=/home/user/ifdown_test.txt
date >> $ifdowntest
whoami >> $ifdowntest
ifconfig >> $ifdowntest
sleep 5
и оставил все это сам скрипт выполняет просто отлично, но добавляя его в оболочку для скрипта Perl не. (Файл не генерируется.)
выход ifconfig >> $ifdowntest показывает, что как wlan0 нет IP - это была снесена. Я могу сделать этот скрипт, чтобы выполнить заранее-вниз (я думал, что папке if-down.d) или как-то изменить что-то, чтобы сделать эту работу? Обратите внимание, что это занимает около 3 секунд для скрипта Perl в том случае, если запускать его вручную.
чистки рядов: я обдираю сети вручную нажатием через networkmanager applet и нажав кнопку "отключить". Я мог бы просто убить моего маршрутизатора, чтобы проверить, что слишком, но я не знаю, если есть разница между отключением вручную и АП больше не существует.
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .
Попробуйте переместить сценарий «disconnect» в /etc/network/if-post-down.d, это каталог, который должен запускаться, когда NetworkManager отключается, а не if-down.d (что означало бы запуск чего-то поскольку устройство опускается, а не когда оно просто отключено). Для того, чего вы пытаетесь достичь, это не должно быть проблемой, и на самом деле не пытайтесь отправлять SMS через сеть, в то время как шлюз по умолчанию, возможно, еще не был обновлен.
Это, очевидно, предполагает, что вы затем все еще есть другое соединение (проводное) для отправки SMS. Все остальное слишком неопределенно и ненадежно, чтобы его можно было использовать (вы не можете ожидать, что беспроводное соединение будет работать достаточно к моменту запуска скриптов для отправки SMS-сообщения).
Если вы хотите исследуйте далее, вы можете посмотреть /etc/network/if-post-down.d .