Так вот, скрипт переименовывает 30-ти минутные и перемещает их, захватывая 29-минутные, которые не обработаны.
#!/bin/bash
set -o xtrace
x="IFS";IFS=$'\n';
x="$IFS";IFS=$'\n';
пишет, что файел /boot/нужныйфайл не найден. Файл вроде называется linuz-5....
Я хочу восстановить систему до изначального состояния, не потеряв данные.
#!/bin/bash
# #папка загрузки
# Downloads=(/volume1/Media/Downloads )
# #папка фильмы
# FilmFolder=(/volume1/Media/Shared_Videos/Films )
# #папка видео файлов
# VideosFolder=(/volume1/Media/Shared_Videos )
# #файл с шаблоном замен
# Renamer=(/volume1/Media/Software/Synology/rename.txt)
# #!!! скобки используются недмного для другого, а именно для массивов - (элемент1 элемент2 элемент3)
# #!!! см. https://devhints.io/bash#arrays
# #!!! а для обьявления переменных достаточно будет:
DIR="/volume1/Media" # базовая папка
Downloads="$DIR/Downloads" # папка загрузки
VideosFolder="$DIR/Shared_Videos" # папка фильмы
FilmFolder="$DIR/Shared_Videos/Films" # папка видео файлов
Renamer="$DIR/Software/Synology/rename.txt" # файл с шаблоном замен
x="IFS";IFS=$'\n';for WhatFile in $(find $Downloads -regex '.*\.\(mkv\|m4v\|mp4\|ts\|avi\)' -and -mmin +30 | sort -r );
do
#!!! IFS как я писал выше лучше всё же использовать не внутри $(), а в цикле или за ним.
#!!! так как область видимости в $() замкнута и обратное преобразование IFS не будет глобальным.
IFS="$x"
#echo $WhatFile
#извлекаем название найденного файла
WhatFileName=$(basename "$WhatFile" )
#echo $WhatFileName
#извлекаем папку найденного файла
WhatFolder=$(dirname "$WhatFile" )
#echo $WhatFolder
#переименовываем файл
#!!! вроде как есть рекомендации использовать в условных операторах вместо одинарных [...] двойные скобки [[...]]
if [ -n "$WhatFileName" ]; then
for RenameFile in "${WhatFile[@]}"; do
WhatRenameFile=$( echo "$WhatFileName" | sed -f "$Renamer" )
if [ "$WhatFileName" != "$WhatRenameFile" ]; then
echo "переименовываем файл из $WhatFileName в $WhatRenameFile"
mv -fv "$WhatFile" "$WhatFolder"/"$WhatRenameFile"
echo "пауза 2 секунды"
sleep 2s
#else
#echo "Файл соответствует правилам "$WhatFileName""
fi
#echo $WhatRenameFile
done
fi
done
#!!! код во многом дублирует продыдущий if... что в принципе можно было бы вынести в отдельную фцнкцию
#переименовываем папку
if [ -n "$WhatFolder" ];
then
for RenameFolder in "${WhatFolder[@]}"; do
WhatRenameFolder=$( echo "$WhatFolder" | sed -f "$Renamer" )
if [ "$WhatFolder" != "$WhatRenameFolder" ];
then
echo "переименовываем папку из $WhatFolder в $WhatRenameFolder"
mv -fv "$WhatFolder" "$WhatRenameFolder"
echo "пауза 2 секунды"
sleep 2s
#else
#echo "Папка соответствует правилам "$WhatFolder""
fi
#echo $WhatRenameFolder
done
fi
#фильм или серал?
if [[ -n "$WhatFile" ]]
then
if [[ "$WhatFolder" == "$Downloads" ]]
then
echo "Обнаружен Фильм"
mv -fv "$WhatFile" "$FilmFolder"
echo "Переместили в Фильмы"
else
#проверяем в сериалах файлы
echo "ищем сериалы"
#проверяем в сериалах файлы
Serials_destination=$(find "$VideosFolder" -type f -iname "$WhatFileName" | sed -n '1p' )
if [[ -n "$Serials_destination" ]]
then
echo $Serials_destination
#извлекаем название найденного файла в сериалах
Serials_file_destination=$(basename "$Serials_destination")
echo $Serials_file_destination
#извлекаем папку найденного файла в сериалах
Serials_folder_destination=$(dirname "$Serials_destination" )
echo $Serials_folder_destination
#переименовали или нет?
if [[ "$WhatFolder" != "$WhatRenameFolder" ]]
then
mv -fv "$WhatRenameFolder"/* "$Serials_folder_destination"
echo "пауза 1 минуту"
sleep 1m
echo "удаление папки $WhatFolder"
rm -Rfv "$WhatRenameFolder"
else
mv -fv "$WhatFolder"/* "$Serials_folder_destination"
echo "пауза 1 минуту"
sleep 1m
echo "удаление папки $WhatFolder"
rm -Rfv "$WhatFolder"
fi
else
echo "В сериалах не найдено папки"
echo "перемещаем в сериалы что-то новое в "$VideosFolder/Serials/$WhatFolder""
mv -fv "$WhatFolder" "$VideosFolder/Serials/"
fi
fi
fi
$Serials_folder_destination Возвращает точку. Как убрать? Спасибо
.
./путь/к/файлу
да-да, положительно шутливая форма же работает только в одном направлении, я всегда об этом забываю.
Главное теперь не удалять неправильный ответ, иначе нещитово.
обновляйте страницу перед тем как писать ) я сразу же удалил тот пост
зачем мне удалять ваш пост вместе с моим ответом ?
xotkot, затем, что ответ неправильный. Дополнение к ответу -- да, можно так. Изначальный ответ -- нет.
sudo pvs --all
выдало
а почему по умолчанию так считает?
А если мне не стоит выполнять pvscreate, то почему?
Ещё нашёл такой баг-репорт. Может у меня похожая проблема?
If the installation is done without active lvm, but package lvmw2 is installed, you will see the wrong error too.
правда, я не понял как это правильно выполнить
в смысле "дальше листать"?) я показал всю инфу, что была в терминале
sudo journalctl --boot=-1 --priority 3 > journalctl.txt
nice -n -20 ffmpeg ... -vcodec libx264 -threads N -thread_type STR ...
зачем вам здесь такое извращение ? сначала в функцию, а потом в переменную, в коротком скрипте где единожды используете данные переменные.
зная вывод yc compute disk list здесь скорее всего можно было бы сократить до одной команды обработки.
это конечно круто, запускаете скрипт который запускает N(по числу дисков) процессов yc, открепляете(disown) их, завершаете скрипт, а запущенные процессы по мере готовности завершаются и рапортуют например в лог файл(который я надеюсь допишите). Теперь вопрос, а что если один или несколько из этих процессов зависли ?