сценарий bash для резервного копирования файла [закрыто]

У меня есть резервные копии нескольких файлов. Мне нужен сценарий для проверки номера строки файла, и если он превышает, скажем, 8000 строк, он просто заархивирует его и назовет его в формате префикса даты. Мне нужна ваша помощь.

1
задан 28 July 2014 в 16:51

2 ответа

Этот сценарий получит номера строки, тогда если это будут больше чем 7 999 (больше, чем или равный 8 000), то это сделает .tar.gz файла.

#! /bin/bash

lif=$(wc -l < /home/USER/path/to/file.txt)

if [ "$lif" -gt 7999 ]; then
    tar /home/USER/path/to/where/you/want/the/backup/to/be/filename-$(date +%Y-%m-%d-%H:%M).tar.gz /home/USER/path/to/file.txt

не Делают для, заставляют к chmod сценарий заставлять его работать - chmod +x /home/USER/path/to/script.sh

, команда крона была бы 0 17 * * * /home/USER/path/to/script.sh для выполнения каждого dday в 17:00. Используйте этот генератор , чтобы помочь получить команду крона, если Вы хотите, чтобы он отличался.

Спасибо @Jnuk для генератора!

4
ответ дан 28 July 2014 в 16:51

Вот демонстрационный сценарий, который делает то, что Вы описываете

#!/bin/sh

FILENAME=$1
LINES=$(cat "$FILENAME" |wc  | awk '{print $1}')
MAXLINE="8000"
DATE=$(date +'%Y-%m-%d')
BACKUP_PATH="/path/to/files/"


do_backup(){
        tar xvf ""backup_$DATE.tar"" "$BACKUP_PATH"
}

if [ "$LINES" -gt "$MAXLINE" ];
then
        do_backup
fi

Первый, он объявляет som переменные,

, ИМЯ ФАЙЛА является файлом, которого Вы хотите проверить длину.

СТРОКИ iis сумма строк, мы находим меня файлом, который мы проверяем

, MAXLINES является макс. суммой строк, которые мы позволяем прежде, чем сделать резервное копирование.

ДАТА является сегодняшней датой в формате

Дня месяца года, BACKUP_PATH является каталогом, который Вы собираетесь скопировать.

do_backup является функцией, которая содержит команду резервного копирования

, сохраняют сценарий в файл в терминале:

chmod +x  script_name

для создания его исполняемым файлом

./script_name/path/to/file_to_check_rows_of

, Если Вы хотите понять, больше как работы сценария пытаются выполнить его с:

-x script_name

шеннона
1
ответ дан 28 July 2014 в 16:51

Другие вопросы по тегам:

Похожие вопросы: