Skript na zálohování práv

Skript umožňuje zazálohování práv i obnovu na souborech ve složce ve které se nacházím a mělo by to fungovat i na vnořené adresáře a soubory, ale obnovu práv jsem zatím nezkoušel. Záloha je funkční. Toto se hodí pro případ, že kopírujete soubory z ext3/ext4 na NTFS.

 

 #!/bin/bash

backup_file="backup_práva.txt"

if [ "$1" = "zálohuj" ]; then
  # Zálohování práv do souboru
  find . -printf "%p\t%u\t%g\t%m\n" > "$backup_file"
  echo "Práva byla zálohována do souboru $backup_file."
elif [ "$1" = "obnov" ]; then
  # Obnovení práv ze souboru
  if [ -f "$backup_file" ]; then
    while IFS=$'\t' read -r -a line; do
      file="${line[0]}"
      user="${line[1]}"
      group="${line[2]}"
      permissions="${line[3]}"
      
      if [ -e "$file" ]; then
        chown "$user:$group" "$file"
        chmod "$permissions" "$file"
        echo "Obnoveny práva pro soubor $file"
      else
        echo "Soubor $file již neexistuje, přeskočeno."
      fi
    done < "$backup_file"
    
    echo "Práva byla obnovena ze souboru $backup_file."
  else
    echo "Soubor s zálohou práv ($backup_file) neexistuje."
    exit 1
  fi
else
  echo "Neplatný argument. Použijte 'zálohuj' nebo 'obnov'."
  exit 1
fi

Komentáře

Oblíbené příspěvky