Advertisement
Guest User

Untitled

a guest
Mar 31st, 2011
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.00 KB | None | 0 0
  1. #!/bin/bash
  2. # Author: Tealk
  3. # Last Modification: 25.03.2011
  4.  
  5. #Einstellung Serveranzahl 1=Ein Server 2=Zwei Server
  6. SERVER="2"
  7. #Updatet Minecraft und Bukkit, kann zu bugs mit den Plugin führen, nur ohne CraftBukkitUpToDate aktivieren 1=An 2=Aus
  8. MCUPDATE="0"
  9. #Updatet Bukkit, funktioniert nur mit CraftBukkitUpToDate 1=An 2=Aus
  10. CRAFTBUKKITUPTODATEB="1"
  11. #Updatet Plugins, funktioniert nur mit CraftBukkitUpToDate 1=An 2=Aus
  12. CRAFTBUKKITUPTODATEP="1"
  13. #Löscht Backups die älter als x Tage sind
  14. BKUPOLD="1"
  15. #Hier die anzahl der Tage einstellen
  16. BKUPOLDT="14"
  17.  
  18. #Pfad des ersten Servers
  19. DIR1="/home/minecraft/build"
  20. #Pfad des 2ten Servers
  21. DIR2="/home/minecraft/rp"
  22. #Pfad für die Backups
  23. BKUP="/home/minecraft/backup"
  24. #Bitte unverändert lassen
  25. DAEMON="java"
  26. #-Xms Minimaler Arbeitsspeicher -Xmx Maximaler Arbeitsspeicher
  27. PARAMS="-Xms32m -Xmx3072M -jar"
  28. #Bitte unverändert lassen
  29. DATA="craftbukkit.jar"
  30. #Bitte unverändert lassen
  31. PARAMS2="nogui"
  32.  
  33. #Downloadpfad Bukkit
  34. DLBUKKIT="http://ci.bukkit.org/job/dev-CraftBukkit/lastStableBuild/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar"
  35.  
  36. #Screen Name erster Server
  37. NAME1="mcserverb"
  38. #Screen Name 2ter Server
  39. NAME2="mcserverrp"
  40. #Beschreibung erster Server
  41. DESC1="Minecraft Build Server"
  42. #Beschreibung 2ter Server
  43. DESC2="Minecraft RP Server"
  44.  
  45.  
  46. case "$1" in
  47. start1)
  48. if [[ `screen -ls |grep $NAME1` ]]; then
  49. echo "found running prozess: $DESC1"
  50. echo "Dont start the Server twice"
  51. exit 1
  52. else
  53. if [ "$UID" = "0" ]; then
  54. echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
  55. for c in $(seq 1 5); do
  56. echo -n "!"
  57. sleep 1
  58. done
  59. echo !
  60. fi
  61. echo "starting the $DESC1"
  62. if [ -e $DIR1 ];then
  63. if [ -x $DIR1 ]; then
  64. cd $DIR1
  65. if [ ! -x $DATA ]; then
  66. echo "$DATA is not executable, trying to set it"
  67. chmod u+x $DATA
  68. else
  69. screen -d -m -S $NAME1 $DAEMON $PARAMS $DATA $PARAMS2
  70. fi
  71. else
  72. echo "No such directory: $DIR1!"
  73. fi
  74. fi
  75. fi
  76. ;;
  77.  
  78. stop1)
  79. if [[ `screen -ls |grep $NAME1` ]]; then
  80. echo -n "Stopping $DESC1"
  81. screen -dr $NAME1 -X stuff "say Server will restart now. Please dissconnect!"
  82. screen -dr $NAME2 -X stuff $'\n'
  83. screen -dr $NAME1 -X stuff "save-all"
  84. screen -dr $NAME1 -X stuff $'\n'
  85. for c in $(seq 1 5); do
  86. echo -n "."
  87. sleep 5
  88. done
  89. screen -r $NAME1 -X quit
  90. echo " done."
  91. cd $DIR1
  92. rm server.log
  93. sleep 1
  94. else
  95. echo "Coulnd't find a running $DESC1"
  96. fi
  97. ;;
  98.  
  99. restart1)
  100. $0 stop1 && $0 start1 || exit 1
  101. ;;
  102.  
  103. start2)
  104. if [[ `screen -ls |grep $NAME2` ]]; then
  105. echo "found running prozess: $DESC2"
  106. echo "Dont start the Server twice"
  107. exit 1
  108. else
  109. if [ "$UID" = "0" ]; then
  110. echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
  111. for c in $(seq 1 5); do
  112. echo -n "!"
  113. sleep 1
  114. done
  115. echo !
  116. fi
  117. echo "starting the $DESC2"
  118. if [ -e $DIR2 ];then
  119. if [ -x $DIR2 ]; then
  120. cd $DIR2
  121. if [ ! -x $DATA ]; then
  122. echo "$DATA is not executable, trying to set it"
  123. chmod u+x $DATA
  124. else
  125. screen -d -m -S $NAME2 $DAEMON $PARAMS $DATA $PARAMS2
  126. fi
  127. else
  128. echo "No such directory: $DIR2!"
  129. fi
  130. fi
  131. fi
  132. ;;
  133.  
  134. stop2)
  135. if [[ `screen -ls |grep $NAME2` ]]; then
  136. echo -n "Stopping $DESC2"
  137. screen -dr $NAME2 -X stuff "say Server will restart now. Please dissconnect!"
  138. screen -dr $NAME2 -X stuff $'\n'
  139. screen -dr $NAME2 -X stuff "save-all"
  140. screen -dr $NAME2 -X stuff $'\n'
  141. for c in $(seq 1 5); do
  142. echo -n "."
  143. sleep 5
  144. done
  145. screen -r $NAME2 -X quit
  146. echo " done."
  147. cd $DIR2
  148. rm server.log
  149. sleep 1
  150. else
  151. echo "Coulnd't find a running $DESC2"
  152. fi
  153. ;;
  154.  
  155. restart2)
  156. $0 stop2 && $0 start2 || exit 1
  157. ;;
  158.  
  159. restartb)
  160. if [ "$SERVER" = "2" ]; then
  161. $0 stop1 && $0 start1 && $0 stop2 && $0 start2 || exit 1
  162. else
  163. $0 stop1 && $0 start1 || exit 1
  164. fi
  165. ;;
  166.  
  167. status)
  168. if [ "$SERVER" = "2" ]; then
  169. if [[ `screen -ls |grep $NAME1` ]]; then
  170. echo "found running prozess: $DESC1"
  171. else
  172. echo "no running prozess: $DESC1"
  173. fi
  174. if [[ `screen -ls |grep $NAME2` ]]; then
  175. echo "found running prozess: $DESC2"
  176. else
  177. echo "no running prozess: $DESC2"
  178. fi
  179. else
  180. if [[ `screen -ls |grep $NAME1` ]]; then
  181. echo "found running prozess: $DESC1"
  182. else
  183. echo "no running prozess: $DESC1"
  184. fi
  185. fi
  186. exit 1
  187. ;;
  188.  
  189. update)
  190. if [ "$SERVER" = "2" ]; then
  191. if [ ! -d $BKUP ]; then
  192. mkdir $BKUP
  193. fi
  194.  
  195. echo "Backing up current binaries..."
  196. DATE=$(date +%d-%m-%Y)
  197. cd $DIR1
  198. tar -czf minecraft_server_1-$DATE.tar.gz plugins/* craftbukkit.jar server.log
  199. mv minecraft_server_1-$DATE.tar.gz $BKUP
  200. cd $DIR2
  201. tar -czf minecraft_server_2-$DATE.tar.gz plugins/* craftbukkit.jar server.log
  202. mv minecraft_server_2-$DATE.tar.gz $BKUP
  203. echo "done"
  204.  
  205. if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
  206.  
  207. echo "Downloading Bukkit"
  208. screen -dr $NAME1 -X stuff "uptodate download"
  209. screen -dr $NAME1 -X stuff $'\n'
  210. until [ -e "$DIR1/bukkit_update/download/download.ready" ]; do
  211. for c in $(seq 1 5); do
  212. echo -n "."
  213. sleep 5
  214. done
  215. if [ -e "$DIR1/bukkit_update/download/download.fail" ]; then
  216. break
  217. fi
  218. done
  219. echo !
  220. if [ -e "$DIR1/bukkit_update/download/download.ready" ]; then
  221. echo "Update Bukkit..."
  222. cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR1
  223. cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR2
  224. chmod 777 $DIR1/craftbukkit.jar
  225. chmod 777 $DIR2/craftbukkit.jar
  226. else
  227. echo "No Bukkit Update"
  228. fi
  229. elif [ "$MCUPDATE" = "1" ]; then
  230. echo "Update Bukkit..."
  231. cd $DIR1
  232. rm craftbukkit.jar
  233. wget -N $DLBUKKIT -O craftbukkit.jar
  234. chmod 777 craftbukkit.jar
  235. cd $DIR2
  236. rm craftbukkit.jar
  237. wget -N $DLBUKKIT -O craftbukkit.jar
  238. chmod 777 craftbukkit.jar
  239. fi
  240. if [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
  241.  
  242. echo "Downloading Plugin Updates..."
  243. screen -dr $NAME1 -X stuff "uptodate plugin"
  244. screen -dr $NAME1 -X stuff $'\n'
  245. sleep 3
  246. screen -dr $NAME2 -X stuff "uptodate plugin"
  247. screen -dr $NAME2 -X stuff $'\n'
  248. until [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; do
  249. if [ -e "$DIR1/bukkit_update/plugins/plugin.ready" ]; then
  250. PLDMC1="ok"
  251. elif [ -e "$DIR1/bukkit_update/plugins/plugin.fail" ]; then
  252. PLDMC1="fail"
  253. fi
  254. if [ -e "$DIR2/bukkit_update/plugins/plugin.ready" ]; then
  255. PLDMC2="ok"
  256. elif [ -e "$DIR2/bukkit_update/plugins/plugin.fail" ]; then
  257. PLDMC2="fail"
  258. fi
  259. for c in $(seq 1 5); do
  260. echo -n "."
  261. sleep 5
  262. done
  263. if [ "$PLDMC1" = "fail" ] && [ "$PLDMC2" = "fail" ]; then
  264. break
  265. fi
  266. if [ "$PLDMC1" = "fail" ] && [ "$PLDMC2" = "ok" ]; then
  267. break
  268. fi
  269. if [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "fail" ]; then
  270. break
  271. fi
  272. done
  273. echo !
  274. if [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; then
  275. echo "Update $DESC1 Plugins..."
  276. cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
  277. echo "done"
  278. echo "Update $DESC2 Plugins..."
  279. cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
  280. echo "done"
  281. elif [ "$PLDMC1" = "ok" ]; then
  282. echo "Update $DESC1 Plugins..."
  283. cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
  284. echo "done"
  285. echo "$DESC2 have no Plugin updates"
  286. elif [ "$PLDMC2" = "ok" ]; then
  287. echo "$DESC1 have no Plugin updates"
  288. echo "Update $DESC2 Plugins..."
  289. cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
  290. echo "done"
  291. else
  292. echo "No Plugin Updates"
  293. fi
  294. fi
  295. if [ "$CRAFTBUKKITUPTODATEB" = "1" ] && [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
  296. echo "Cleaning temporary Plugins"
  297. rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
  298. rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
  299. rm -rf $DIR2/bukkit_update/plugins/*.jar $DIR2/bukkit_update/plugins/*.zip $DIR2/bukkit_update/plugins/plugin.ready $DIR2/bukkit_update/plugins/plugin.fail
  300. elif [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
  301. echo "Cleaning temporary Plugins"
  302. rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
  303. elif [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
  304. echo "Cleaning temporary Plugins"
  305. rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
  306. rm -rf $DIR2/bukkit_update/plugins/*.jar $DIR2/bukkit_update/plugins/*.zip $DIR2/bukkit_update/plugins/plugin.ready $DIR2/bukkit_update/plugins/plugin.fail
  307. fi
  308. if [ "$BKUPOLD" = "1" ]; then
  309. echo "Cleaning old Backups"
  310. find $BKUP -type f -mtime +$BKUPOLDT -delete
  311. fi
  312. else
  313. mkdir $BKUP
  314.  
  315. echo "Backing up current binaries..."
  316. DATE=$(date +%d-%m-%Y)
  317. cd $DIR1
  318. tar -czf minecraft_server_1-$DATE.tar.gz plugins/* craftbukkit.jar server.log
  319. mv minecraft_server_1-$DATE.tar.gz $BKUP
  320.  
  321. if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
  322.  
  323. echo "Downloading Bukkit..."
  324. screen -dr $NAME1 -X stuff "uptodate download"
  325. screen -dr $NAME1 -X stuff $'\n'
  326. until [ -e "$DIR1/bukkit_update/download/download.ready" ]; do
  327. for c in $(seq 1 5); do
  328. echo -n "."
  329. sleep 5
  330. done
  331. if [ -e "$DIR1/bukkit_update/download/download.fail" ]; then
  332. break
  333. fi
  334. done
  335. echo !
  336. if [ -e "$DIR1/bukkit_update/download/download.ready" ]; then
  337. echo "Update Bukkit..."
  338. cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR1
  339. chmod 777 $DIR1/craftbukkit.jar
  340. else
  341. echo "No Bukkit Update"
  342. fi
  343. elif [ "$MCUPDATE" = "1" ]; then
  344. echo "Update Bukkit..."
  345. cd $DIR1
  346. rm craftbukkit.jar
  347. wget -N $DLBUKKIT -O craftbukkit.jar
  348. chmod 777 craftbukkit.jar
  349. cd $DIR2
  350. rm craftbukkit.jar
  351. wget -N $DLBUKKIT -O craftbukkit.jar
  352. chmod 777 craftbukkit.jar
  353. fi
  354. if [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
  355.  
  356. echo "Downloading Plugin Updates..."
  357. screen -dr $NAME1 -X stuff "uptodate plugin"
  358. screen -dr $NAME1 -X stuff $'\n'
  359. until [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; do
  360. if [ -e "$DIR1/bukkit_update/plugins/plugin.ready" ]; then
  361. PLDMC1="ok"
  362. elif [ -e "$DIR1/bukkit_update/plugins/plugin.fail" ]; then
  363. PLDMC1="fail"
  364. fi
  365. for c in $(seq 1 5); do
  366. echo -n "."
  367. sleep 5
  368. done
  369. if [ "$PLDMC1" = "fail" ]; then
  370. break
  371. fi
  372. done
  373. if [ "$PLDMC1" = "ok" ]; then
  374. echo "Update $DESC1 Plugins..."
  375. cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
  376. echo "done"
  377. else
  378. echo "No Plugin Updates"
  379. fi
  380. fi
  381. if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
  382. echo "Cleaning temporary Plugins"
  383. rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
  384. rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
  385. elif [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
  386. echo "Cleaning temporary Plugins"
  387. rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
  388. elif [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
  389. echo "Cleaning temporary Plugins"
  390. rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
  391. fi
  392. if [ "$BKUPOLD" = "1" ]; then
  393. echo "Cleaning old Backups"
  394. find $BKUP -type f -mtime +$BKUPOLDT -delete
  395. fi
  396. fi
  397. echo "Server up tp date please restart server now!!"
  398. exit 1
  399. ;;
  400.  
  401. cron)
  402. if [ "$SERVER" = "2" ]; then
  403. cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
  404. cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
  405. rm -rf $DIR1/bukkit_update/plugins/*.jar
  406. rm -rf $DIR2/bukkit_update/plugins/*.jar
  407. else
  408. cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
  409. rm -rf $DIR1/bukkit_update/plugins/*.jar
  410. fi
  411. ;;
  412.  
  413. *)
  414. if [ "$SERVER" = "2" ]; then
  415. echo "Usage: $0 {start1|stop1|restart1|start2|stop2|restart2|restarb|status|update}"
  416. exit 2
  417. else
  418. echo "Usage: $0 {start1|stop1|restart1|status|update}"
  419. exit 2
  420. fi
  421. esac
  422. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement