Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

tidy_datadir.sh 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. if [ -d "$1" ]; then
  3. cd "$1"
  4. else
  5. echo "Usage: $0 <datadir>" >&2
  6. echo "Removes obsolete Bitcoin database files" >&2
  7. exit 1
  8. fi
  9. LEVEL=0
  10. if [ -f wallet.dat -a -f addr.dat -a -f blkindex.dat -a -f blk0001.dat ]; then LEVEL=1; fi
  11. if [ -f wallet.dat -a -f peers.dat -a -f blkindex.dat -a -f blk0001.dat ]; then LEVEL=2; fi
  12. if [ -f wallet.dat -a -f peers.dat -a -f coins/CURRENT -a -f blktree/CURRENT -a -f blocks/blk00000.dat ]; then LEVEL=3; fi
  13. if [ -f wallet.dat -a -f peers.dat -a -f chainstate/CURRENT -a -f blocks/index/CURRENT -a -f blocks/blk00000.dat ]; then LEVEL=4; fi
  14. case $LEVEL in
  15. 0)
  16. echo "Error: no Bitcoin datadir detected."
  17. exit 1
  18. ;;
  19. 1)
  20. echo "Detected old Bitcoin datadir (before 0.7)."
  21. echo "Nothing to do."
  22. exit 0
  23. ;;
  24. 2)
  25. echo "Detected Bitcoin 0.7 datadir."
  26. ;;
  27. 3)
  28. echo "Detected Bitcoin pre-0.8 datadir."
  29. ;;
  30. 4)
  31. echo "Detected Bitcoin 0.8 datadir."
  32. ;;
  33. esac
  34. FILES=""
  35. DIRS=""
  36. if [ $LEVEL -ge 3 ]; then FILES=$(echo $FILES blk????.dat blkindex.dat); fi
  37. if [ $LEVEL -ge 2 ]; then FILES=$(echo $FILES addr.dat); fi
  38. if [ $LEVEL -ge 4 ]; then DIRS=$(echo $DIRS coins blktree); fi
  39. for FILE in $FILES; do
  40. if [ -f $FILE ]; then
  41. echo "Deleting: $FILE"
  42. rm -f $FILE
  43. fi
  44. done
  45. for DIR in $DIRS; do
  46. if [ -d $DIR ]; then
  47. echo "Deleting: $DIR/"
  48. rm -rf $DIR
  49. fi
  50. done
  51. echo "Done."