2 заметки с тегом

bash

качаем ролики с сайта Россия К

Потребовалось нам скачать передачу АГОРА с сайта и пересмотреть ее в режиме offline.

открываем ссылку

https://tvkultura.ru/video/show/brand_id/61882/episode_id/2169406/video_id/2182968/

переходим в режим отладки Ctrl+Shift+C, выбираем закладку «Сеть» (Network)

очищаем список загруженных документов, жмем в плеере play и у нас начинают появляться подгруженные файлы, в списке находим ролики с расширением ts. Да вся передача разбита на множество небольших фрагментов, по 10-15 секунд, нам надо их всех выкачать.
на найденном файле жмем правой клавишей и выбираем Копировать->Копировать URL (Copy->Copy link address)

у нас в буфере обмена оказывается ссылка примерно такого вида:

https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b1800000_pd3628000_1.ts

находим последний фрагмент, перематываем ролик до конца и подгружается файл с адресом:

https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b800000_pd3628000_374.ts

нам нужны значения от 1 до 374, а далее дело техники, я уже подготовил bash скрипт

#!/bin/bash

# задаем диапазон фрагментов, от 1 до 374
for counter in {1..374}
do
   # дополняем нулями до трехзначного числа (чтобы при склейке в один файл фрагменты не перемешались)
   foo=$(printf "%03d" $counter)
   # скачиваем ролики по одному и сохраняем с дружественными именами
   wget -O "video_$foo.ts" "https://a3569458507-s81121.cdn.ngenix.net/_cdn_auth/secure/v/vh/vod_hls/definst/smil:vh/smil/002/182/968_d20190519103336.smil/media_b800000_pd3628000_$counter.ts"
done

# дальше с помощью ffmpeg склеиваем в один файл и сохраняем в формате mp4
ffmpeg -f concat -safe 0 -i <(for f in ./*.ts; do echo "file '$PWD/$f'"; done) -c copy output.mp4

# удаляем лишние файлы
find . -name "*.ts" -type f -delete

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

 Нет комментариев    36   5 мес   bash   ffmpeg   linux

Наблюдение за принтерами по SNMP

Удобно наблюдать состоянием картриджей сетевых принтеров с помощью следующего bash-скрипта:

#!/bin/bash

function isalive {
    ping -c 1 -i 0.2 -W 1 $1 &>/dev/null
    if [ $? -ne 0 ] ; then return 1;else return 0; fi
}

function show_ink
{
ip=$1
name=$2
mib_c="1.3.6.1.2.1.43.11.1.1.6"
mib_f="1.3.6.1.2.1.43.11.1.1.8"
mib_l="1.3.6.1.2.1.43.11.1.1.9"

full=($( snmpwalk -v1 -c public $ip $mib_f -Oa | awk -F "INTEGER: " '{print $2}'))
 cur=($( snmpwalk -v1 -c public $ip $mib_l -Oa | awk -F "INTEGER: " '{print $2}'))
echo '<td valign="top">'
echo '<b><a href="http://'$ip'/" name="'$name'" target="_blank">'$name'</a></b><br />'

for ((i = 0; i < ${#full[@]}; i++))
do
    x=${cur[$i]}
    y=${full[$i]}
    ii=$((i+1))
    level=`echo $x/$y*100|bc -l|awk -F "." '{print $1}'`
    if [ -z $level ]; then level=1; fi
    if [ `snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vs| awk -F ":" '{print $1}'| grep -i 'Hex-STRING'` ];then
        ink=`snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vsq | tr -d '\n' | xxd -r -p `
    else 
	ink=`snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vsq | tr -d '"'`
    fi
    if [ -z "$ink" ]; then
	continue
    fi
    if (( $level<0 )); then level=0; fi
    if (( $level<20 ));then
	if (( $level<1 ));then
	    echo '<font color="red"><b>'$ink:$level%'</b></font><br />'
	else
	    echo '<font color="goldenrod">'$ink:$level%'</font><br />'
	fi
    else
	echo $ink:$level%'<br />'
    fi
done
echo '</td>'
}
j=0
echo '<meta charset="utf-8">'
echo '<meta http-equiv="refresh" content="15" >'
echo '<table cellpadding="10">'
echo '<tr>'
while IFS='' read -r line || [[ -n "$line" ]]; do
    ip=`echo "$line"|awk '{print $1}'`
    name=`echo "$line"|awk -F"\"" '{print$2}'`
    if isalive $ip; then show_ink $ip "$name"; j=$(( j+1 )); fi
    if (( $j==3 )); then j=0;echo '</tr><tr>';fi
done < "/home/ipator/ink/printers.txt"
echo '</tr></table>'

Скрипт генерит страничку, из списка файла printers.txt

192.168.111.10 «HP 5550»
192.168.111.11 «HP m750»
192.168.111.12 «HP T795»
192.168.111.13 «HP T790»
192.168.111.14 «HP 5525»
192.168.111.15 «Epson 9880»
192.168.111.16 «Epson 3880»
192.168.111.17 «Epson SC-P800»
192.168.111.17 «HP M276»
192.168.111.18 «HP 1536»
192.168.111.19 «HP 1505»
192.168.111.20 «KX-MB2051»
192.168.111.21 «HP 400»
192.168.111.22 «HP 1212»
192.168.111.23 «HP 1606»
192.168.111.24 «HP M4276»

Получается вот такая страничка

Запускать скрипт можно через cron:

*/5 * * * * /opt/ink/showink.sh

 Нет комментариев    46   7 мес   bash   ink   pinter   snmp   toner