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.