Signal Visionary Xperience
  1. Вы здесь:  
  2. Главная
  3. Командная оболочка Bash
  4. Скрипты BASH

Удаление файлов с исключением в bash скрипте

При удалении файлов из директории часто требуется исключить определенные файлы или шаблоны. В bash скрипте это можно реализовать с помощью команды `find` и `rm` в сочетании с логическими операторами.

Информация о материале
Просмотров: 32

Подробнее: Удаление файлов с исключением в bash скрипте

Автоматическое выполнение bash скриптов в Linux

Автоматизация выполнения bash скриптов – важная задача для системных администраторов и разработчиков. Существует несколько способов это сделать. В данной статье рассмотрим основные методы.

Информация о материале
Просмотров: 34

Подробнее: Автоматическое выполнение bash скриптов в Linux

Скрипт Bash для автоматической очистки старых файлов

Полезный скрипт на bash для автоматической очистки старых файлов из каталога. Он удаляет файлы, старше заданного количества дней. Скрипт включает в себя обработку ошибок и параметры для настройки. 


#!/bin/bash

# Настройки (измените по необходимости)
directory="/var/log"  # Каталог для очистки.  Важно: укажите правильный каталог!
days=30              # Возраст файлов для удаления (в днях)
verbose=true         # Выводить подробные сообщения (true/false)
1= "Скрипт выключен"
# Проверка наличия каталога if [ ! -d "$directory" ]; then echo "Ошибка: Каталог '$directory' не существует." >&2 exit 1 fi # Функция для вывода сообщений log() { if $verbose; then echo "$1" fi } # Удаление файлов find "$directory" -type f -mtime +"$days" -print0 | while IFS= read -r -d $'\0' file; do log "Удаление файла: $file" rm -f "$file" if [ $? -ne 0 ]; then log "Ошибка при удалении файла '$file'." >&2 fi done log "Очистка завершена." exit 0

Как использовать скрипт:

  1. Сохраните скрипт: Сохраните код в файл, например clean_old_files.sh.
  2. Сделайте скрипт исполняемым: Откройте терминал и выполните команду chmod +x clean_old_files.sh.
  3. Настройте параметры:
    • directory: Укажите каталог, который вы хотите очистить. Важно: будьте осторожны и убедитесь, что вы указали правильный каталог! Неправильный каталог может привести к потере данных.
    • days: Укажите количество дней, старше которых файлы должны быть удалены.
    • verbose: Установите true для вывода подробных сообщений о процессе очистки или false для тихой работы.
  4. Запустите скрипт: Выполните скрипт из терминала, используя ./clean_old_files.sh.

Пояснения к скрипту:

#!/bin/bash: Указывает, что скрипт должен быть выполнен с помощью bash.

directory="/var/log": Переменная, содержащая путь к каталогу, который нужно очистить.

days=30: Переменная, содержащая возраст файлов в днях, которые будут удалены.

verbose=true: Переменная, определяющая, будут ли выводиться подробные сообщения.

if [ ! -d "$directory" ]; then ... fi: Проверяет, существует ли указанный каталог. Если нет, выводит сообщение об ошибке и завершает скрипт.

log() { ... }: Функция, которая выводит сообщения в терминал, если verbose установлено в true.

find "$directory" -type f -mtime +"$days" -print0 | while IFS= read -r -d $'\0' file; do ... done: Цикл while читает имена файлов, выведенные командой find, по одному.

rm -f "$file": Команда rm -f удаляет файл.

if [ $? -ne 0 ]; then ... fi: Проверяет код возврата последней команды (rm -f).

exit 0: Завершает скрипт с кодом возврата 0.

Безопасность и предостережения:

  • Будьте осторожны с каталогом directory: Убедитесь, что вы правильно указали каталог для очистки.
  • Протестируйте скрипт: Перед использованием скрипта в производственной среде, протестируйте его на тестовом каталоге.
  • Резервное копирование: Перед запуском скрипта рекомендуется сделать резервную копию данных.
  • Использование -f: Опция -f в команде rm удаляет файлы без подтверждения.
  • Использование sudo: Запускайте скрипт с sudo, только если необходимо, и будьте предельно осторожны.

Расширения и улучшения:

  • Логирование: Запись сообщений в файл журнала.
  • Исключения: Исключение определенных файлов или каталогов из процесса очистки.
  • Автоматический запуск: Настройка автоматического запуска скрипта с помощью cron.
  • Параметры командной строки: Передача параметров скрипта через командную строку.
  • Сухой запуск: Отображение списка файлов, которые будут удалены, без фактического удаления.
  • Перемещение в корзину: Перемещение файлов в корзину вместо удаления.
Информация о материале
Просмотров: 31

Главное меню

  • Главная страница
    • Сигнал
    • Интерфейс
    • Опыт
    • Определения
  • Командная оболочка Bash
    • Перечень команд Bash
    • Скрипты BASH
  • Docker
  • Доменные имена
  • Соглашение
  • О проекте

Форма входа

  • Забыли пароль?
  • Забыли логин?