# Linuks laika mašīna 2022.10.05 11:42 # Skripts jāievieto diskā, kuru izmantos arhivēšanai. # Šis ir tikai piemērs! # Lai strādatu, jāmaina UUID, DATORAID, HOSTNAME, KURSH, KURLIKT, DIR_NO un DIR_UZ. # # Ja izmanto Windows disku arhivēsanai, pārliecinies, ka disks vienmēr tiek # piemontēts ar vienām un tam pašam pilnvaram! # NTFS montēšanas piemērs, lai visi var lasīt un tikai viens var izdarīt # izmaiņas: # UUID=1111111111111111 /home/_NTFS_DISKS1_ ntfs auto,nousers,uid=1000,gid=1000,fmask=0133,dmask=0022 0 0 # Dotajā piemērā izmaiņas var izdarīt tikai lietotājs ar id=1000. # NTFS montēšanas piemērs, lai visi var tikai lasīt: # UUID=2222222222222222 /home/_NTFS_DISKS2_ ntfs auto,nousers,fmask=0133,dmask=0022 0 0 # DATUMS=`date +%F_%H-%M` DATORAID=$(cat /etc/machine-id) LAST=PEEDEEJAIS KURSH=$(id -u -n) # Kļūdu paziņojums Kljuuda(){ echo -n -e "\e[101;93;5m" echo -n Kļūda: echo -n -e "\e[25;1m" echo -n $1 echo -e "\e[49;39;0m" exit } case $HOSTNAME in dators1) if [[ "$DATORAID" != "33333333333333333333333333333333" ]]; then Kljuuda "Datora ID neatbilst zināmajam." exit else KURLIKT=./D1 DIR_NO=( "/home/lietotajs/Video" "/home/lietotajs/Music" ) DIR_UZ=( "Filmas" "Muzika" ) fi ;; dators2) if [[ "$DATORAID" != "44444444444444444444444444444444" ]]; then Kljuuda "Datora ID neatbilst zināmajam." exit else case $KURSH in lietotaajs1) KURLIKT=./D2 DIR_NO=( "/home/lietotaajs1/Video" "/home/lietotaajs1/Dokumenti" "/home/lietotaajs1/Attēli" "/home/lietotaajs1/Mūzika" ) DIR_UZ=( "Video" "Dokumenti" "Atteli" "Muzika" ) ;; *) Kljuuda "Nezināms lietotājs" exit ;; esac fi ;; dators3) if [[ "$DATORAID" != "55555555555555555555555555555555" ]]; then Kljuuda "Datora ID neatbilst zināmajam." exit else case $KURSH in lietotajs2) KURLIKT=./D3 DIR_NO=( "/home/_NTFS_DISKS2_/Foto" ) DIR_UZ=( "Foto" ) ;; *) Kljuuda "Nezināms lietotājs" exit ;; esac fi ;; # Skripts strādā arī zem „WSL” (Windows Subsystem for Linux). # Datņu kopēšanas vietai jābūt formatētam kā NTFS diskam!!! WinDators) if [[ "$DATORAID" != "66666666666666666666666666666666" ]]; then Kljuuda "Datora ID neatbilst zināmajam." exit else case $KURSH in wsl_lietotajs) KURLIKT=./WSL DIR_NO=( "/mnt/d/Users/win_lietotajs/Pictures" "/mnt/d/Users/win_lietotajs/Documents" ) DIR_UZ=( "atteli" "dokumenti" ) ;; *) Kljuuda "Nezināms lietotājs" exit ;; esac fi ;; *) Kljuuda "Neatpazinu datoru." exit ;; esac echo -e "\e[32mPazīstu datoru $HOSTNAME\e[39m" # Pārbauda, vai ir iepriekšējā kopija if [ -e "$KURLIKT/$LAST" ]; then ATSAUCEI=.T. echo Šī ir atkārtota kopija else ATSAUCEI=.F. echo Šī ir pirmā kopija fi # Ko kopēt for ((i=o; i<${#DIR_NO[@]}; i++)) do echo "$i" echo -e "\e[93mKopēju ${DIR_UZ[$i]}\e[39m" mkdir -p "$KURLIKT/$DATUMS/${DIR_UZ[$i]}" if [[ $ATSAUCEI = .T. ]]; then rsync -avzhe --progress --link-dest="$(pwd)/$KURLIKT/$LAST/${DIR_UZ[$i]}" \ "${DIR_NO[$i]}/" \ "$KURLIKT/$DATUMS/${DIR_UZ[$i]}/" else rsync -avzhe --progress \ "${DIR_NO[$i]}/" \ "$KURLIKT/$DATUMS/${DIR_UZ[$i]}/" fi done if [[ $ATSAUCEI = .T. ]]; then rm "$KURLIKT/$LAST" fi ln -s "./$DATUMS" "$KURLIKT/$LAST" read -n1 -s -r -p $'Uzklikšķini jebkuram tautiņam, lai aizvērtu logu ...\n' key