Daemon para mover arquivos entre partições?

3

Eu tenho um sistema com o Ubuntu instalado em 20 GB e o Windows em 100 GB, duas partições - cada uma com 100 GB usando o NTFS. Ao usar o DC ++ (vários downloads de arquivos grandes) eu costumava receber a mensagem de que o sistema está ficando sem memória.

Existe alguma maneira de fazer um deamon que irá verificar a partição do Ubuntu para que, se o seu espaço usado subir até uma certa quantidade (digamos 18 GB), ele irá iniciar automaticamente um arquivo em movimento desta unidade para outra unidade ( Vamos supor que ele irá escolher o arquivo da pasta de filme ou maior arquivo de mídia desta unidade para mover)?

Ou pede para perguntar ao usuário qual arquivo mover?

Existe algum programa que possa fazer isso por mim? Se não, você pode sugerir algo para ler para que eu possa fazer isso?

    
por RATHI 10.12.2012 / 19:32

1 resposta

4

Por que você não aponta o DC ++ para salvar em outro drive por padrão, em vez de constantemente mover os arquivos?

Uma solução semelhante à que você pediu:

#!/bin/bash

srcPart="sda9"
dstDir="/media/drive/dir"

moveLargestFile(){
    largestFile="'ls -S -w1 ""/*.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

Este sript lançará seu aplicativo (não esqueça de especificá-lo) em segundo plano e monitorará a partição selecionada srcPart até você sair do aplicativo. Se durante a sua execução, o uso do sistema de arquivos ultrapassar 95%, vamos selecionar o maior arquivo avi na pasta $ HOME / Movies e movê-lo para o local especificado.

    
por Pavel A 10.12.2012 / 21:25