Ай Лайн
Связаться
Отдел продаж +7 (812) 385-74-84
Время работы пн-пт с 9:00 до 18:00

Примеры скриптов для разных задач

Подборка коротких скриптов-заготовок для типовых задач. Пути и параметры меняйте под себя.

rsync — бэкап с исключениями

#!/bin/bash
# Синхронизация каталога на резервный сервер с исключениями
rsync -aAXv --delete \
  --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
  /srv/data/ backup@srv-backup:/backup/data/

Запуск по расписанию — строка в crontab -e:

30 2 * * * /opt/scripts/rsync-backup.sh >> /var/log/rsync-backup.log 2>&1

tar — архив каталога с датой в имени

#!/bin/bash
SRC="/etc"
DST="/backup/etc"
mkdir -p "$DST"
tar -czf "$DST/etc-$(date +%Y-%m-%d_%H-%M).tar.gz" "$SRC"

Очистка старых файлов (ротация бэкапов)

# удалить файлы старше 14 дней
find /backup/etc -type f -name "*.tar.gz" -mtime +14 -delete

Контроль свободного места с уведомлением

#!/bin/bash
# Пишет в syslog, если занято больше 90% на корневом разделе
LIMIT=90
USED=$(df -P / | awk 'NR==2 {gsub("%",""); print $5}')
if [ "$USED" -ge "$LIMIT" ]; then
  logger -t disk-check "WARNING: / is ${USED}% full"
fi

Массовая смена владельца и прав

chown -R appuser:appgroup /srv/app
find /srv/app -type d -exec chmod 750 {} \;
find /srv/app -type f -exec chmod 640 {} \;

Проверка доступности хоста с записью в лог

#!/bin/bash
HOST="10.0.0.1"
if ! ping -c 3 -W 2 "$HOST" > /dev/null 2>&1; then
  logger -t ping-check "ALERT: $HOST unreachable"
fi

Автозапуск скриптов при загрузке и по расписанию — см. Автозапуск в Linux. Наследование прав на каталоги — Наследование группы на директорию.

Оставить заявку