Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ##### Переменные #####
- BASE_DIR="/var/opt/usr"
- BASE_FILE="key.txt"
- LIST_DIR="list"
- LIST_FILE="control.list"
- BACKUP_DIR="backup"
- ##### ЕСЛИ ПЕРВЫЙ ЗАПУСК, ТО ######
- ##### Проверка наличия директорий и файлов #####
- #Наличие директории#
- if ! [ -d $BASE_DIR ]; then
- clear
- echo
- echo "Создание директорий..."
- mkdir -p $BASE_DIR
- mkdir -p $BASE_DIR/$LIST_DIR
- mkdir -p $BASE_DIR/$BACKUP_DIR
- fi
- #Наличие файла#
- if ! [ -f $BASE_DIR/$BASE_FILE ]; then
- echo
- echo 'Создание файла БД...'
- touch $BASE_DIR/$BASE_FILE
- echo
- echo 'Создание файла списка...'
- touch $BASE_DIR/$LIST_DIR/$LIST_FILE
- echo
- echo 'Вам необходимо заполнить файл-список!'
- exit 0
- fi
- filesize1=$(stat -c%s "$BASE_DIR/$BASE_FILE")
- filesize2=$(stat -c%s "$BASE_DIR/$LIST_DIR/$LIST_FILE")
- if [ $filesize1 -eq 0 ]; then
- if [ $filesize2 -eq 0 ]; then
- clear
- echo
- echo "Вам необходимо заполнить файл-список!"
- echo
- exit 0
- else
- echo
- echo "Рассчет контрольных сумм файлов"
- echo
- ##### Считываем файлы и пишем в БД #####
- FILE=$BASE_DIR/$LIST_DIR/$LIST_FILE
- while read line; do
- CONT_SUMM=`cksum "$line"|awk '{print $1}'`
- echo "$line $CONT_SUMM" >> $BASE_DIR/$BASE_FILE
- ##### Делаем резервные копии. Это только для себя и небезопасно совсем!!!!!!!!!! ###
- cp $line $BASE_DIR/$BACKUP_DIR
- done < $FILE
- echo "Готово!"
- echo
- fi
- fi
- ##### Проверка контрольной суммы, вывод сообщения #####
- FILE=$BASE_DIR/$LIST_DIR/$LIST_FILE
- FILE2=$BASE_DIR/$BASE_FILE
- while read line; do
- C1=`cksum "$line"|awk '{print $1}'`
- while read line2; do
- L=`echo "$line2"|awk '{print $1}'`
- if [ $line = $L ]; then
- C2=`echo "$line2"|awk '{print $2}'`
- if ! [ $C1 -eq $C2 ]; then
- echo
- echo "ВНИМАНИЕ! Изменение контрольной суммы файла $line"
- fi
- fi
- done <$FILE2
- done < $FILE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement