diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..3080970 --- /dev/null +++ b/backup.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +bak=/home/minetest/nalc-server-0.4/backup +if [[ ! -d $bak ]]; then + mkdir $bak +fi + +bak_tmp=/var/tmp/nalc-0.4_dump +if [[ ! -d $bak_tmp ]]; then + mkdir $bak_tmp +fi + +rm -r /home/minetest/nalc-server-0.4/minetest/worlds/nalc/rollback.sqlite +tar -I pbzip2 -cvf $bak/world.tar.bz2 /home/minetest/nalc-server-0.4/minetest/worlds/nalc + +pg_dump nalc-0.4 > $bak_tmp/nalc-0.4.sql +pg_dump players-nalc-0.4 > $bak_tmp/players-nalc-0.4.sql + +if [[ -e $bak/dump_sql.tar.bz2 ]]; then + cd $bak + tar -jxvf dump_sql.tar.bz2 + cd .. +fi + +rdiff-backup --no-file-statistics $bak_tmp $bak + +cd $bak +tar -I pbzip2 -cvf dump_sql.tar.bz2 --remove-files *.sql +cd .. + +rm -rf $bak_tmp diff --git a/install.sh b/install.sh index 4cc2dda..cf1e175 100755 --- a/install.sh +++ b/install.sh @@ -25,9 +25,9 @@ usage() { echo "--makeopt | -j : Passer des options à make." echo "--ssh : Identifiants ssh." echo "--url : URL distante personnalisée." + echo -e "\tSi l'option --ssh est passée en option, il s'agira du chemin distant." echo "--irrlicht | -i : Chemin personnalisé des sources irrlicht." echo "--postgresql | -p : Si vous voulez que le serveur soit configuré avec postgresql" - echo -e "\tSi l'option --ssh est passée en option, il s'agira du chemin distant." echo "Commandes :" echo -e "\t0.5 : Installation du serveur avec minetest-0.5.x. Suivez les instructions..." echo -e "\t0.4 : Installation du serveur avec minetest-0.4.x. Suivez les instructions..." @@ -67,11 +67,11 @@ postgresql() { read -p "Indiquez le mot de passe : " pg_password read -p "Indiquez le nom de la BDD à utiliser : " pg_dbname - echo "gameid = minetest_game" > worldmt.conf - echo "backend = postgresql" >> worldmt.conf - echo "player_backend = postgresql" >> worldmt.conf - echo "pgsql_connection = host=$pg_url user=$pg_user password=$pg_password dbname=$pg_dbname" >> worldmt.conf - echo "pgsql_player_connection = host=$pg_url user=$pg_user password=$pg_password dbname=players-$pg_dbname" >> worldmt.conf + echo "gameid = minetest_game" > world.mt + echo "backend = postgresql" >> world.mt + echo "player_backend = postgresql" >> world.mt + echo "pgsql_connection = host=$pg_url user=$pg_user password=$pg_password dbname=$pg_dbname" >> world.mt + echo "pgsql_player_connection = host=$pg_url user=$pg_user password=$pg_password dbname=players-$pg_dbname" >> world.mt } install_0.4() { @@ -181,7 +181,7 @@ install_minetest_game() { if [[ ! -d minetest_game ]]; then local branch="-b master" - if [[ ! $ver == "0.4" ]]; then + if [[ $ver == "0.4" ]]; then branch="-b backport-0.4" fi git clone $branch $URL/minetest_game.git @@ -226,11 +226,7 @@ install_world() { createdb players-$pg_dbname fi - if [[ $ver == "0.4" ]]; then - ln -s $(pwd)/server-0.4/worlds/minetestforfun/world.mt minetest/worlds/nalc/world.mt - else - ln -s $(pwd)/world.mt minetest/worlds/nalc/world.mt - fi + ln -s $(pwd)/world.mt minetest/worlds/nalc/world.mt fi } @@ -238,7 +234,7 @@ install_mods() { if [[ $ver == "0.4" ]]; then local i=0 local md[1]="" # Mods to disable - for mod in "mysql_auth watershed mobs_old magicmithril obsidian eventobjects player_inactive random_messages irc irc_commands profilerdumper profnsched"; do + for mod in mysql_auth watershed mobs_old magicmithril obsidian eventobjects player_inactive random_messages irc irc_commands profilerdumper profnsched; do i=$(( $i+1 )) md[$i]=$mod done @@ -248,17 +244,17 @@ install_mods() { ln -s $(pwd)/server-0.4/mods minetest/mods fi - if [[ -a world.mt ]]; then + if [[ -a world.mt && -z $pg_dbname ]]; then rm world.mt + cp worldmt.conf world.mt fi - cp worldmt.conf world.mt - + ls server-0.4/mods | while read -r mod; do if [[ -a server-0.4/mods/$mod/modpack.txt ]]; then ls server-0.4/mods/$mod | while read -r submod; do if [[ -d server-0.4/mods/$mod/$submod ]]; then local mod_enable="true" - for (( modn=1; modn<$i; modn++ )); do + for (( modn=1; modn<=$i; modn++ )); do if [[ ${md[$modn]} == $submod ]]; then mod_enable="false" fi @@ -268,7 +264,7 @@ install_mods() { done else local mod_enable="true" - for (( modn=1; modn<$i; modn++ )); do + for (( modn=1; modn<=$i; modn++ )); do if [[ ${md[$modn]} == $mod ]]; then mod_enable="false" fi @@ -306,12 +302,11 @@ install_mods() { # Recréation des liens symboliques et du fichier world.mt (dans tous les cas) rm minetest/mods/* - if [[ -a world.mt ]]; then + if [[ -a world.mt && -z $pg_dbname ]]; then rm world.mt + cp worldmt.conf world.mt fi - cp worldmt.conf world.mt - if [[ -d custom/mods ]]; then ls custom/mods | while read -r mod; do if [[ -d custom/mods/$mod ]]; then