Блог :. Делаем периодическое смс-напоминание на bash

Делаем периодическое смс-напоминание на bash

17 Июн, 2014

Представим, что мы хотим получать смску в определенное время каждый день, причем, где бы мы не находились) Конечно же, можно тупо поставить обычный будильник на телефон, но вся прелесть в том, что можно передавать какие-нибудь данные, которые периодически изменяются, например, курсы валют, погоду или какие-то свои технические данные с сервера. Для этого нам поможет сервис LittleSMS с открытым API, вся прелесть которого сводится к копеечным ценам за отправку смс (например, на номера российских операторов 0,5-0,9 рублей). Вам остается зарегистрироваться и получить ключ апи, для теста будет предложено несколько бесплатных смс.

Ну и сам код скрипта на bash


#!/bin/bash
   
user='user@yandex.ru' # Ваш логин (обычно, совпадает с емейлом)
sender='7953*******' # имя отправителя
api_key='*****' # API-ключ, есть в личном кабинете
test=0 # тестовый режим, в рабочем режиме параметр можно пропустить

recipients="37529*******";
days=$(expr 365 - `date +"%j"`);

message="До нового года осталось $days дней";

function sendSms() {
	echo `curl -k -s https://littlesms.ru/api/message/send \
		--data-urlencode "user=$user" \
		--data-urlencode "recipients=$recipients" \
		--data-urlencode "message=$1" \
		--data-urlencode "sender=$sender" \
		--data-urlencode "test=$test" \
		--data-urlencode "apikey=$api_key"`;
}

sendSms "$message"

Теперь осталось настроить crontab, чтобы скприпт срабатывал периодически

$ sudo crontab -e

В открывшемся файле запишем, например, каждый день в 0 часов 0 минут будет отправляться смс. Не забывайте, что время нужно указывать в локали GMT+0.

 # m h  dom mon dow   command

0 0 * * * /home/bingo/sms.sh

Доне