Author Topic: Как вывести лог на другом устройстве ?  (Read 4555 times)

0 Members and 1 Guest are viewing this topic.

Barrackuda

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Доброго времени суток камрады.
Задача следующая. Написал с горем пополам скрипт(буду учиться:) Закинул на сервер. И теперь хочу логи выводить на свой пк. Есть ли возможность реализовать сие?

Shada

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #1 on: November 25, 2018, 08:36:58 AM »
Один из вариантов - установить на оба устройства Яндекс.Диск. Сохранять лог в файл, в папке на этом диске. На втором (возможно мобильном) устройстве его просматривать.
Можно выбрать удобный просмотрщик, например Notepad++ умеет определять изменение файла извне и обновлять документ на экране.
Если сохранять лог в файл в формате csv, то просматривать можно в Excelе, тоже с автообновлением.
Если например нужно передавать с логом звук, то можно использовать формат html и в нем уже красиво всё оформить. Просмотрщиком в последнем случае будет браузер. Автообновление страницы в браузере легко настроить через плагины для браузера, или js. Звук может пригодиться, если бот на удаленной машине попал в сложную ситуацию и должен срочно позвать на помощь человека.
Во вложении пример html-лога со звуком. При его просмотре звук на компьютере лучше убавить.

Поправка:
В браузерах на движке WebKit (Chrome и Opera) теперь оказывается по умолчанию отключено автовоспроизведение аудио - https://developers.google.com/web/updates/2017/09/autoplay-policy-changes .
Вот такая засада. Чтобы включить надо в адресной строке браузера ввести команду chrome://flags/#autoplay-policy и нажать Enter. В разделе "Autoplay policy" выбрать "No user gesture is required", затем нажать внизу кнопку "Relaunch Now".
« Last Edit: November 25, 2018, 12:40:18 PM by Shada »

Barrackuda

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #2 on: November 26, 2018, 10:05:17 AM »
Один из вариантов - установить на оба устройства Яндекс.Диск. Сохранять лог в файл, в папке на этом диске. На втором (возможно мобильном) устройстве его просматривать.
Можно выбрать удобный просмотрщик, например Notepad++ умеет определять изменение файла извне и обновлять документ на экране.
Если сохранять лог в файл в формате csv, то просматривать можно в Excelе, тоже с автообновлением.
Если например нужно передавать с логом звук, то можно использовать формат html и в нем уже красиво всё оформить. Просмотрщиком в последнем случае будет браузер. Автообновление страницы в браузере легко настроить через плагины для браузера, или js. Звук может пригодиться, если бот на удаленной машине попал в сложную ситуацию и должен срочно позвать на помощь человека.
Во вложении пример html-лога со звуком. При его просмотре звук на компьютере лучше убавить.

Поправка:
В браузерах на движке WebKit (Chrome и Opera) теперь оказывается по умолчанию отключено автовоспроизведение аудио - https://developers.google.com/web/updates/2017/09/autoplay-policy-changes .
Вот такая засада. Чтобы включить надо в адресной строке браузера ввести команду chrome://flags/#autoplay-policy и нажать Enter. В разделе "Autoplay policy" выбрать "No user gesture is required", затем нажать внизу кнопку "Relaunch Now".

Отлично! Спасибо! Идея работает. Через Sublime  выводит на ура. А в браузере очень сильно придумано.
Итак что не устраивает и что планирую предпринять.
Яндекс диск друпбокс и прочие-не вариант. Ресурсы на вес золота. Потому как на есть сервер а внутри виртуалки. Если на каждую ставить яндекс то тяжело выходить.
Что пришло в голову:
Попробовать через WebDav. Кстати яндекс когда то давал такую возможность.
Через FTP:
Quote
Иногда бывает нужно периодически загружать/выгружать какие-то файлы с/на FTP. Запустив команду ftp с параметром -s, можно задать текстовый файл, содержащий FTP-команды, которые выполнит программа ftp.exe.

Создай файл upload.bat. Мы его будем использовать для загрузки всех txt-файлов из локального каталога c:\test в удаленный каталог tmp нашего FTP-сервера. В этот файл помести всего одну строчку:
Code: [Select]
ftp -n -s:commands.ftpПараметр -n запрещает автоматический вход на сервер (входом будем управлять вручную), а второй задает текстовый файл с командами FTP-клиента, которые будут или выполнены локально, или переданы серверу (в зависимости от команды). В нашем случае commands.ftp следующий:
Code: [Select]
open сервер
USER пользователь
пароль
binary
cd tmp
lcd c:\test
prompt
mput *.txt
bye
Обрати внимание: пароль указывается в отдельной строке после указания имени пользователя. Команда binary включает двоичный режим обмена информацией. Команда cd изменяет каталог на FTP-сервере, lcd — на локальном компе. Команда prompt отключает режим подтверждений для команд mput (множественная загрузка файлов на сервер), mget (множественная загрузка файлов с сервера). Команда bye завершает работу сценария.

Данный сценарий легко переделать в сценарий, загружающий файлы с сервера. Для этого достаточно команду mput заменить на mget.

Я привел довольно тривиальный пример. Но ты можешь существенно его расширить. Никто тебе не мешает добавить перед вызовом команды ftp команды, создающие архив каталога БД. Например:
Code: [Select]
rar a c:\test\backup.rar @backup.lstЭта команда создаст архив backup.rar по всем файлам, указанным в текстовом файле backup.lst. После этого в commands.ftp нужно изменить mput *.txt на mput *.rar.

А далее уже или в браузер. Или уже в редактор где например через sublime можно сделать чудеса. Только мне как человеку дилетанту очень тяжело это всё дается. Потому как имею только средние познания в HTML и CSS. Но ничего. Терпение и труд все перетрут!!! Пользуясь случаем хочу поблагодарить автора сего чуда-кликера!! Этот софт как глоток воздуха. Наконец то проекты начали двигаться в правильном направлении после длительного простоя. Долго искал то что нужно. Однако не Макрос в связке с кроном, не BAS как то не заходил и не получалось возможно из за кривых рук и не желания учиться) А Чудо-кликер в связке с тем же кроном может сотворить чудеса :) И есть желание подучить синтаксис. Кстати про синтаксис.Добротного мануала в сети не нашёл. Подскажите в каком направлении копать? Что подучить? C основы или какой язык ? Поведайте аффективный путь к тому что бы хорошо понимать язык кликера?
Спасибо.

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #3 on: November 26, 2018, 06:45:50 PM »
Привет! :)

Что пришло в голову:
Попробовать через WebDav. Кстати яндекс когда то давал такую возможность.
Подключить Я.Диск как сетевой диск, действительно будет самым легким решением, в плане потребления ресурсов. Такая возможность сохранилась - https://yandex.ru/support/disk/webdav/

Добавлю еще один вариант, которым пользовался сам. Не буду расписывать подробно, просто скажу, что это IIS. Он штатно присутствует в Windows как компонент и по дефолту отключен. Включив IIS, мы превращаем свой комп в независимый сайт и ftp-сервер. Всё что мы напишем на страницах этого сайта, сразу будет видно всем в интернете. У этого варианта есть конечно свои минусы. Например - у сервера должен быть статический IP-адрес. Не стоит забывать про безопасность и настроить доступ к информации на сервере. По поводу потребления ресурсов системы IIS-сервером, сказать ничего не могу - на глаз не ощутимо.
Но есть в этом решении и один важный плюс. В моем случае, служебная информация, которую я выкладывал на сайт, предназначалась для моего бывшего босса, который не просто "чайник" в IT, а вообще валенок. И сам он находился в другом городе. Причем мне даже не было известно (и не интересно) на каком устройстве он эту информацию будет просматривать. По этому настроить на его устройстве подключение к облаку, небыло ни малейшего желания. Я ему просто кинул в аську url сайта и всё - он заткнулся. Вообще, такой вид отчетности о работе я и придумал для того, чтобы поменьше общаться с этим человеком по телефону, предоставив ему онлайн-отчеты.
Вариант конечно не самый лучший, но тоже вариант. Может кому пригодится. :)

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #4 on: November 27, 2018, 12:33:49 AM »
Ну и еще вариант, кидать на почту логи. http://crapware.aidf.org/forum/index.php?topic=3778.0

Там есть примеры и по отправке сообщений на почту, и по приему ее кликерманом.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #5 on: January 02, 2019, 07:53:56 PM »
Один из вариантов - установить на оба устройства Яндекс.Диск. Сохранять лог в файл, в папке на этом диске. На втором (возможно мобильном) устройстве его просматривать.
Можно выбрать удобный просмотрщик, например Notepad++ умеет определять изменение файла извне и обновлять документ на экране.
Если сохранять лог в файл в формате csv, то просматривать можно в Excelе, тоже с автообновлением.
Если например нужно передавать с логом звук, то можно использовать формат html и в нем уже красиво всё оформить. Просмотрщиком в последнем случае будет браузер. Автообновление страницы в браузере легко настроить через плагины для браузера, или js. Звук может пригодиться, если бот на удаленной машине попал в сложную ситуацию и должен срочно позвать на помощь человека.
Во вложении пример html-лога со звуком. При его просмотре звук на компьютере лучше убавить.

Поправка:
В браузерах на движке WebKit (Chrome и Opera) теперь оказывается по умолчанию отключено автовоспроизведение аудио - https://developers.google.com/web/updates/2017/09/autoplay-policy-changes .
Вот такая засада. Чтобы включить надо в адресной строке браузера ввести команду chrome://flags/#autoplay-policy и нажать Enter. В разделе "Autoplay policy" выбрать "No user gesture is required", затем нажать внизу кнопку "Relaunch Now".

Сами пробовали задумку с яндекс-диском? Я пробовал... При постоянном обращении скрипта к файлу (даже если он не пишет в него, а просто считывает), этот файл в постоянной загрузке на я-диск и в итоге в нем нет той инфы, которая в нем на компе и не будет до тех пор, пока скрипт не оставит файл в покое и не даст ему нормально прогрузиться на я-диск.
Я не ду... Потому и не бу...

Атеист

  • Guest
Re: Как вывести лог на другом устройстве ?
« Reply #6 on: January 02, 2019, 08:17:06 PM »
Сами пробовали задумку с яндекс-диском? Я пробовал... При постоянном обращении скрипта к файлу (даже если он не пишет в него, а просто считывает), этот файл в постоянной загрузке на я-диск и в итоге в нем нет той инфы, которая в нем на компе и не будет до тех пор, пока скрипт не оставит файл в покое и не даст ему нормально прогрузиться на я-диск.

Тогда:
(Robocopy + Bat To Exe Converter) + Доступ к Диску через WebDAV

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #7 on: January 02, 2019, 08:31:00 PM »
Сами пробовали задумку с яндекс-диском? Я пробовал... При постоянном обращении скрипта к файлу (даже если он не пишет в него, а просто считывает), этот файл в постоянной загрузке на я-диск и в итоге в нем нет той инфы, которая в нем на компе и не будет до тех пор, пока скрипт не оставит файл в покое и не даст ему нормально прогрузиться на я-диск.
Это если через какието приложения?

Так Atas же предложил прям через подключенный сетевой диск. Я в тот раз  пробовал, даже пользовался. Самый простейший рабочий вариант. И с обратной связью проблем не должно быть.
Quote
Подключить Я.Диск как сетевой диск, действительно будет самым легким решением, в плане потребления ресурсов. Такая возможность сохранилась - https://yandex.ru/support/disk/webdav/

По ссылке подробно вссе описано. Диск создается за 15сек. Прямо на этом диске сохранил скрипт с таким кодом для теста:
Code: (clickermann) [Select]
print("сообщение ", $a)
TFWrite("test.txt",STRCONCAT ("сообщение ", $a)  )
inc($a)
wait(2)
При этом запись в файл TFWrite происходит давольно медленно 1-2сек, но это не должно мешать в большинстве случаев.
Запускаю. В телефоне в это время прям через браузер наблюдаю за логом, задержки никакой нет.

Конечно, если нужно писать туда по десять сообщений в секунду, то это не вариант.



Kibes

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #8 on: August 12, 2019, 11:16:44 PM »
Я сделал файлик index.html, разместил его на гугл диск и сделал хостинг по этой инструкции: https://www.youtube.com/watch?v=Pv7iaTaZzIw
Все получилось на ура. Но, мне нужно, что бы страничка в браузере обновлялась каждые 15 секунд. В принципе она обновляется, но я так понимаю, что браузер загнал страницу в кэш, от туда и обновляет. Почитал в интернете, нашел, что нужно добавить в код странички, что бы обновляло не с кеша, а заново загружал браузер файл:
Code: [Select]
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
<meta http-equiv="Refresh" content="15" />
Но ничего не получилось. Может кто посоветует, как сделать что бы каждый раз браузер грузил измененный index.html. Если в браузере нажать на ctrl + F5, то выдает браузер обновленный index.html, но хотелось бы автоматом.
« Last Edit: August 12, 2019, 11:19:53 PM by Kibes »

Shada

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #9 on: August 13, 2019, 08:40:36 AM »
Если страницу создает Clickermann, то вместо
простого обновления страницы - <meta http-equiv="Refresh" content="15" />,
можно сделать переход на другую страницу - <meta http-equiv='refresh' content='15;URL=https://yandex.ru'>.
Целевой URL остается прежним, только к нему нужно дописать, после вопросительного знака, что то вроде новой версии.

Получится примерно следующее:
Code: (html5) [Select]
<meta http-equiv='refresh' content='15;URL=https://yandex.ru?bla-bla-bla'>
Для указания новой версии страницы хорошо подходит время Unix - переменная "$_time_t".
В HTML документе можно использовать одинарные кавычки.

Code: (clickermann) [Select]
$url = STRCONCAT("<meta http-equiv='refresh' content='15;URL=https://yandex.ru?", $_time_t, "'>")
// <meta http-equiv='refresh' content='15;URL=https://yandex.ru?1565683540'>

Еще есть плагины для браузера, которые обновляют страницу игнорируя кэш.
Еще есть JavaScript.

Kibes

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #10 on: August 13, 2019, 08:58:09 AM »
Для указания новой версии страницы хорошо подходит время Unix - переменная "$_time_t".
В HTML документе можно использовать одинарные кавычки.

Code: (clickermann) [Select]
$url = STRCONCAT("<meta http-equiv='refresh' content='15;URL=https://yandex.ru?", $_time_t, "'>")
// <meta http-equiv='refresh' content='15;URL=https://yandex.ru?1565683540'>
Я как раз об этом и думал, тоже так пробовал, но проблема в том, что в файл хтмл прописался раз "1565683540" и затем по циклу его обновляет. Нужен механизм, что бы это число "1565683540" генерировалось уже в самой странице, а я не знаю как это сделать, подскажите пожалуйста.

Еще есть плагины для браузера, которые обновляют страницу игнорируя кэш.
Еще есть JavaScript.
В этих познаниях вообще ноль, сижу гуглю - пока ничего не нашел...

Shada

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #11 on: August 13, 2019, 09:22:21 AM »
В расширении ReloadMatic есть отключение кэша.
Хорошо ли работает, не знаю.



Kibes

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #12 on: August 13, 2019, 09:31:03 AM »
В расширении ReloadMatic есть отключение кэша.
Хорошо ли работает, не знаю.

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

Попросил знакомого товарища, рубит в html, он мне сделал:
Code: (javascript) [Select]
<script>
    function reloadPage() {
        var url = location.protocol + '//' + location.host + location.pathname;
        location.href = url + '?v=' + new Date().getTime();
    }
      setTimeout(reloadPage, 15000);
</script>
« Last Edit: August 13, 2019, 04:23:47 PM by Kibes »

Shada

  • Освоившийся
  • **
  • Posts: 24
    • View Profile
Re: Как вывести лог на другом устройстве ?
« Reply #13 on: August 13, 2019, 10:59:47 AM »
Или так:
Code: (javascript) [Select]
<script>
  var refresh = setInterval(function () {
    document.location.replace('Твой_URL' + '?' + +new Date);
  }, 15000);
</script>

"Твой_URL" только замени на нужный URL.

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: Как вывести лог на другом устройстве ?
« Reply #14 on: August 16, 2019, 12:47:15 AM »
как у вас все сложно, у меня бот просто пишет мне в телегу как у него дела

один клик в окно, паст и ентер, видно и на машине и не телефоне сразу, зачем такие сложности?