Bash: o cp não copia do tmpfs para o disco rígido

0

Eu estava fazendo um script bash para o servidor do jogo, mas o script não funciona como eu esperava.

A ideia do script é criar a pasta /ramdisk e montá-la como tmpfs . Em seguida, copie os arquivos de /server/ que serão necessários em /ramdisk , mundos do jogo de backup (que estão agora em /ramdisk ), inicie o servidor (que está em /ramdisk ) quando o servidor encerrar os arquivos copiados /ramdisk de volta para /server e depois desmontar o ramdisk.

No entanto, os arquivos não são copiados de /ramdisk como esperado ... Acredito que eles não são copiados, pois todas as alterações feitas em /ramdisk não são salvas no diretório /server , depois o script termina.

O script também está dizendo que a cópia foi bem-sucedida e cp não fornece nenhum código de erro.

Aqui está o script que estou usando:

echo Mounting RAMDISK...

if [ ! -d "/ramdisk" ]; then
    echo Creating folder /ramdisk
    mkdir /ramdisk
fi
mount -t tmpfs -o size=512M tmpfs /ramdisk
if [ $? -eq 0 ]; then
    echo -e "Mounting RAMDISK... 3[0;32mFinished3[1;37m"
else
    echo -e "Mounting RAMDISK... 3[0;31mFAILED!!!3[1;37m"
    echo -e "3[0;31mCritical Error3[1;37m"
    exit
fi

echo Copying files to RAMDISK...

cp -ar /server/* /ramdisk
if [ $? -eq 0 ]; then
    echo -e "Copying files to RAMDISK... 3[0;32mFinished3[1;37m"
else
    echo -e "Copying files to RAMDISK... 3[0;31mFAILED!!!3[1;37m"
    echo -e "3[0;31mCritical Error3[1;37m"
    exit
fi
tm=$(date "+%d-%m-%y_%H-%M-%S")
mkdir /server-backups/$tm-backup

echo Backing up World...
mkdir /server-backups/$tm-backup/world
cp -ar /ramdisk/world/* /server-backups/$tm-backup/world
if [ $? -eq 0 ]; then
    echo -e "Backing up World... 3[0;32mFinished3[1;37m"
else
    echo -e "Backing up World... 3[0;31mFAILED!!!3[1;37m"
fi
echo Backing up Nether...
mkdir /server-backups/$tm-backup/world_nether
cp -ar /ramdisk/world_nether/* /server-backups/$tm-backup/world_nether
if [ $? -eq 0 ]; then
    echo -e "Backing up Nether... 3[0;32mFinished3[1;37m"
else
    echo -e "Backing up Nether... 3[0s;31mFAILED!!!3[1;37m"
fi
echo Backing up End...
mkdir /server-backups/$tm-backup/world_the_end
cp -ar /ramdisk/world_the_end/* /server-backups/$tm-backup/world_the_end
if [ $? -eq 0 ]; then
    echo -e "Backing up End... 3[0;32mFinished3[1;37m"
else
    echo -e "Backing up End... 3[0;31mFAILED!!!3[1;37m"
fi

java -Xms2G -Xmx2G -jar /ramdisk/bukkit.jar -o false


#The error appears to be here

echo Copying files out of RAMDISK...
cp -ar /ramdisk/* /server
if [ $? -eq 0 ]; then
    echo -e "Copying files out of RAMDISK... 3[0;32mFinished3[1;37m"
else
    echo -e "Copying files out of RAMDISK... 3[0;31mFAILED!!!3[1;37m"
    echo -e "3[0;31mCritical Error3[1;37m"
    exit
fi

#End of error block

echo Unmounting RAMDISK...
umount /ramdisk
if [ $? -eq 0 ]; then
    echo -e "Unmounting RAMDISK... 3[0;32mFinished3[1;37m"
else
    echo -e "Unmounting RAMDISK... 3[0;31mFAILED!!!3[1;37m"
fi

Esse roteiro foi escrito por mim mesmo e admito que não fiz muitos scripts de bash na minha vida. Ficarei muito feliz se alguém puder me ajudar com isso.

    
por vakus 21.11.2016 / 18:58

0 respostas