Advertisement
Guest User

Untitled

a guest
Dec 7th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # 07.12.2020 disable pikaur
  4. #
  5. # Snapshot + System Update
  6. # ---------------------------
  7. # Snapshot - Rollback - Btrfs
  8. # ---------------------------
  9.  
  10. BTRFS=/usr/bin/btrfs
  11. CP=/usr/bin/cp
  12. ECHO=/usr/bin/echo
  13. GREP=/usr/bin/grep
  14. MKDIR=/usr/bin/mkdir
  15. MOUNT=/usr/bin/mount
  16. MV=/usr/bin/mv
  17. #PIKAUR=/usr/bin/pikaur
  18. PACMAN=/usr/bin/pacman
  19. REFLECTOR=/usr/bin/reflector
  20. SED=/usr/bin/sed
  21. SUDO=/usr/bin/sudo
  22. CHECKUPDATES=/usr/bin/checkupdates
  23. MAXSAVESNAPSHOTS=23
  24. SNAPSHOTHISTORYFOLDER="/.snapshots/STABLE-Snapshot-History"
  25.  
  26. # ---------------------------
  27. # Snapshot System
  28. # ---------------------------
  29. [ -d ${SNAPSHOTHISTORYFOLDER} ] || $SUDO $MKDIR -p ${SNAPSHOTHISTORYFOLDER}
  30. if $CHECKUPDATES ; then
  31. # if true ; then
  32. bootstate=`$MOUNT | $GREP "on / type btrfs" | $GREP "subvol=/@snapshots/TESTING"`
  33. if [ -z "$bootstate" ]
  34. then
  35. $ECHO ""
  36. $ECHO $bootstate
  37. $ECHO ""
  38. $ECHO "System ist nicht mit TESTING hochgefahren !"
  39. $ECHO "ENDE !"
  40. sleep 2
  41. exit 1
  42. else
  43. # -------- make new OLDSTABLE --------
  44. $SUDO $BTRFS subvolume delete /.snapshots/OLDSTABLE
  45. $SUDO $MV /.snapshots/STABLE /.snapshots/OLDSTABLE
  46. $SUDO $SED -i 's/STABLE/OLDSTABLE/g' /.snapshots/OLDSTABLE/etc/fstab
  47. $SUDO $CP /boot/vmlinuz-linux-stable /boot/vmlinuz-linux-oldstable
  48. $SUDO $CP /boot/initramfs-linux-stable.img /boot/initramfs-linux-oldstable.img
  49. # $SUDO $CP /boot/vmlinuz-linux-lts-stable /boot/vmlinuz-linux-lts-oldstable
  50. # $SUDO $CP /boot/initramfs-linux-lts-stable.img /boot/initramfs-linux-lts-oldstable.img
  51.  
  52. # --------- make new STABLE ----------
  53. $SUDO $BTRFS subvolume snapshot / /.snapshots/STABLE
  54. $SUDO $SED -i 's/TESTING/STABLE/g' /.snapshots/STABLE/etc/fstab
  55. $SUDO $CP /boot/vmlinuz-linux /boot/vmlinuz-linux-stable
  56. $SUDO $CP /boot/initramfs-linux.img /boot/initramfs-linux-stable.img
  57. # $SUDO $CP /boot/vmlinuz-linux-lts /boot/vmlinuz-linux-lts-stable
  58. # $SUDO $CP /boot/initramfs-linux-lts.img /boot/initramfs-linux-lts-stable.img
  59.  
  60. # --------- backup TESTING and Kernels ----------
  61. TIMESTAMP=`date +%Y-%m-%d-%H%M`
  62. $SUDO $BTRFS subvolume snapshot / ${SNAPSHOTHISTORYFOLDER}/${TIMESTAMP}_STABLE
  63. $SUDO cp /boot/vmlinuz-linux ${SNAPSHOTHISTORYFOLDER}/${TIMESTAMP}_vmlinuz-linux
  64. $SUDO cp /boot/initramfs-linux.img ${SNAPSHOTHISTORYFOLDER}/${TIMESTAMP}_initramfs-linux.img
  65.  
  66. # ---------------------------
  67. # Update System
  68. # ---------------------------
  69. $SUDO $REFLECTOR -f 8 -p https -i ".de/" --sort rate --save /etc/pacman.d/mirrorlist
  70. $SUDO $PACMAN -Syu
  71. #$PIKAUR -Syu # aktualisiert AUR gleich mit :-)
  72.  
  73. # --------------------------------------------
  74. # delete old saved Snapshots and Kernels
  75. # --------------------------------------------
  76. typeset -i FILECOUNT
  77. FILECOUNT=0
  78. for file in `ls -r ${SNAPSHOTHISTORYFOLDER} | grep _STABLE` ; do
  79. FILECOUNT=$FILECOUNT+1
  80. [ $FILECOUNT -le $MAXSAVESNAPSHOTS ] && continue
  81. kernelfilename=`echo ${file} | cut -c-15`
  82. $SUDO $BTRFS subvolume delete ${SNAPSHOTHISTORYFOLDER}/${file}
  83. # echo "deleting snapshot ${SNAPSHOTHISTORYFOLDER}/${file}"
  84. [ -f "${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_vmlinuz-linux" ] && $SUDO rm ${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_vmlinuz-linux
  85. echo "delete file ${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_vmlinuz-linux"
  86. [ -f "${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_initramfs-linux.img" ] && $SUDO rm ${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_initramfs-linux.img
  87. echo "delete file ${SNAPSHOTHISTORYFOLDER}/${kernelfilename}_initramfs-linux.img"
  88. done
  89.  
  90. # --------------------------------------------
  91. # Balance Filesystem
  92. # --------------------------------------------
  93. $SUDO $BTRFS balance start -dusage=5 /btrfs
  94. fi
  95. else
  96. echo "Keine Updates vorhanden - ENDE !"
  97. sleep 2
  98. fi
  99. # -------------------------------------------------------------------------------------
  100. # disable automatic-search for grub - only 00_header 40_custom 41_custom are needed
  101. # -------------------------------------------------------------------------------------
  102. for file in `ls /etc/grub.d/ | grep -v ^4 | grep -v README | grep -v ^00 | grep -v disabled$` ; do
  103. $SUDO chmod 644 /etc/grub.d/$file
  104. $SUDO mv /etc/grub.d/$file /etc/grub.d/"$file"_disabled
  105. done
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement