У меня есть система с установленной Ubuntu в 20 ГБ и окнами в 100 ГБ, два раздела - по 100 ГБ каждый с использованием NTFS. При использовании DC ++ (многократная загрузка большого файла) я получал сообщение о том, что системе не хватает памяти.
Есть ли способ создать демон, который будет проверять раздел Ubuntu, чтобы, если его используемое пространство увеличивалось до определенной величины (скажем, 18 ГБ), он автоматически запускал перемещение файла с этого диска на другой диск давайте предположим, что он выберет файл из папки с фильмом или самый большой медиа-файл с этого диска для перемещения)?
Или он запрашивает у пользователя, какой файл переместить?
Есть ли какая-нибудь программа, которая может сделать это для меня? Если нет, можете ли вы предложить что-нибудь почитать, чтобы я смог это сделать?
Почему бы вам просто не указать DC ++ для сохранения на другой диск по умолчанию вместо того, чтобы постоянно перемещать файлы?
Решение, подобное тому, о котором вы просили:
#!/bin/bash
srcPart="sda9"
dstDir="/media/drive/dir"
moveLargestFile(){
largestFile="`ls -S -w1 "$1"/*.avi | head -n 1`"
mv "$largestFile" "$dstDir"
}
your-app &
appPid=$!
while [ "`ps -A | grep $appPid`" ]; do
usePercent=$(df -h | grep "$srcPart" | grep -o "[0-9]\{1,3\}%" | sed 's/%//')
if [ $usePercent -gt 95 ]; then
moveLargestFile "$HOME/Movies"
fi
sleep 60
done
Этот скрипт запустит ваше приложение (не забудьте указать его) в фоновом режиме и будет следить за выбранным разделом srcPart
, пока вы не закроете приложение. Если во время выполнения использование файловой системы превысит 95%, мы выберем самый большой файл avi в папке $ HOME / Movies и переместим его в указанное место.