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

linux

удаляем дубликаты с помощью fdupes

Накопилось за несколько лет море фотографий, и столкнулся я с тем, что некоторые фотографии продублированы. Думал, телефон несколько раз выгрузил их на сервер, но оказалось их немало, да в разных папках и это неприятный факт, т. к. руками перелопатить миллионы фотографий — нереально... а сравнивать по содержимому процесс очень ресурсоемкий. Порывшись на просторах, нашел интересную утилитку fdupes, написал ее Андриан Лопес (Adrian Lopez), за что ему огромное спасибо. Программа сравнивает размер файла и MD5 хэш, и после сравнения начинает сверку по-байтно.

fdupes /home/user/photos

ищет дубликаты в указанном каталоге

-r — рекурсивный поиск

fdupes -r /home/user/photos > duplicate_list.txt

сохранит в файле список дубликатов

а, дальше с помощью awk отфильтруем дублирующиеся файлы для дальнейшего удаления

awk 'BEGIN{d=0} NF==0{d=0} NF>0{if(d)print;d=1}' duplicate_list.txt > delete_list.txt

а затем удаляем по списку

rm `cat delete_list.txt`

или так

xargs rm < delete_list.txt
 Нет комментариев    39   2 мес   fdupes   linux

find и суммарный объем данных

объем этих файлов, как это сделать?
Задача нетривиальная, нашлось два решения (их может быть и больше)

первое, используем du:

find параметры_поиска -exec du -b {} + | awk ’{sum = sum+$1 }; END { print sum }’

пример:

find /volume1/photo/ -maxdepth 1 -type f -exec du -b {} + | awk ’{sum = sum+$1 }; END { print sum }’

второе, используем ls:

find параметры_поиска -ls | awk ’{sum = sum+$7 }; END { print sum }’

пример:

find /volume1/photo/ -maxdepth 1 -type f -ls | awk ’{sum = sum+$7 }; END { print sum }’

 Нет комментариев    20   2 мес   find   linux

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

Потребовалось нам скачать передачу АГОРА с сайта и пересмотреть ее в режиме 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, в котором находится вся передача

 Нет комментариев    34   4 мес   bash   ffmpeg   linux

автокликер для linux

IMHO лучший жанр игр для нас  — idle game. По большей части это «кликеры», есть куча программ автоматизации нажатий кнопок для Windows, а вот для Linux не нашлось, исправляем ситуацию.

скачать можно тут: https://itscience.pro/downloads/clicks_generator.tar.gz

 Нет комментариев    37   6 мес   click   generator   linux