(CRON) информация (MTA не установлен, отбрасывается вывод) телеграмма отправленного сообщения - PullRequest
0 голосов
/ 25 марта 2019

я делаю новый скрипт оболочки crontab, уведомляющий телеграмму, но сообщение не получено

среда ubuntu 16.04

uname -n >> text.txt
while read p; do
  adb -s "$p" shell getprop ro.product.manufacturer >> text.txt
  adb -s "$p" shell dumpsys battery | grep level >> text.txt
  adb -s "$p" shell getprop ro.product.model >> text.txt
  adb -s "$p" shell dumpsys battery | grep health >> text.txt
  TEXT=$(cat text.txt)
curl -X POST https://api.telegram.org/bot<token>/sendMessage -d chat_id=<chat id> -d text="$TEXT"
  rm text.txt
done <info.txt

я ожидаю, что сообщение может быть получено в телеграмме

этот журнал cron

cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-03-25 17:53:44 WIB; 11min ago
     Docs: man:cron(8)
 Main PID: 14599 (cron)
    Tasks: 1
   Memory: 3.3M
      CPU: 229ms
   CGroup: /system.slice/cron.service
           └─14599 /usr/sbin/cron -f

Mar 25 18:02:01  -Latitude-3490 CRON[14811]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 25 18:02:01  -Latitude-3490 CRON[14812]: (root) CMD (sh /home/asd/device_info.sh)
Mar 25 18:02:01  -Latitude-3490 CRON[14811]: pam_unix(cron:session): session closed for user root
Mar 25 18:03:01  -Latitude-3490 CRON[14857]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 25 18:03:01  -Latitude-3490 CRON[14858]: (root) CMD (sh /home/asd/device_info.sh)
Mar 25 18:03:01 -Latitude-3490 CRON[14857]: pam_unix(cron:session): session closed for user root
Mar 25 18:04:01 -Latitude-3490 CRON[14866]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 25 18:04:01 -Latitude-3490 CRON[14867]: (root) CMD (sh /home/asd/device_info.sh)
Mar 25 18:05:01 -Latitude-3490 CRON[14879]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 25 18:05:01 -Latitude-3490 CRON[14880]: (root) CMD (sh /home/asd/device_info.sh)

1 Ответ

0 голосов
/ 26 марта 2019

прежде всего смотрите: https://unix.stackexchange.com/a/150556

это быстрый вопрос для вашего случая.

для одного серийного номера мобильного устройства:

#!/bin/bash

SERIAL="XX-XXXXXXXXXXXXXXXXXXXXXXXX"
TOKEN="XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
CHATID="XXXXXXXXX"

# stuff
MSG="*server hostname:*
$(uname -n)

*mobile device info:*
$(adb -s "$SERIAL" shell getprop ro.product.manufacturer)
$(adb -s "$SERIAL" shell getprop ro.product.model)
$(adb -s "$SERIAL" shell dumpsys battery | grep -Eo '(level|health).*' )"

curl -s https://api.telegram.org/bot"$TOKEN"/sendMessage \  
     -d "chat_id=$CHATID&text=$MSG&parse_mode=markdown" > /dev/null
# end stuff

для серийных номеров, разделенных пробелами, в файле devices.txt, которые необходимо добавить

...

for SERIAL in $(cat devices.txt)
  do
  # stuff
  ...
  ...
  # end stuff
  done

добавить работу в crontab

 * * * * * exec /root/get_device_info

результат:
enter image description here

...