Позднее Ctrl + ↑

проверяем запущена ли служба в windows и если надо — запускаем

Ну, что же... бывают случаи, когда какая нибудь важная служба (сервис, service) тормознула, с разработчиком связи нет, а сам продукт является «черным ящиком». На выручку нам приходит очередной «костыльный» метод. Задача: в кроне шедулере сделать проверку, жива ли служба и если померла — стартануть.

в примере имя службы передадим параметром, в батничке накидаем двухстрочный скрипт, сначала проверим запущена ли служба и если нет — запустим.

Но, учтите, писать надо именно display name (выводимое имя).

net start | find /i %1 
if errorlevel==1 net start %1

удаляем дубликаты с помощью 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

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 }’

Ранее Ctrl + ↓