-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbash script
More file actions
83 lines (50 loc) · 2.08 KB
/
Copy pathbash script
File metadata and controls
83 lines (50 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
# Проверка существования папки /LOG
if [ -d "/LOG/" ]
then
# Проверка существования папки /BACKUP
if [ -d "/BACKUP/" ]
then
echo "Input max percent WITHOUT \"%\":"
# Необходимо ввести максимально возможный процент заполненности папки /LOG
read MAXPCENT
# Реальный процент заполненности папки /LOG
PCENT=$((`df -k /LOG | tail -1 | awk '{print $5}' | cut -d '%' -f 1`))
# Проверка заполненности папки /LOG
if [ $PCENT -gt $MAXPCENT ]
then
# Заходим в папку /LOG
cd /LOG
# Количество файлов в папке /LOG (вычитаем 2, т.к. столько у нас скрытых файлов)
COUNT=$((`ls -l | wc | awk '{print $1}'` - 2))
echo "Input max number of files:"
# Необходимо ввести максимальное количество файлов
read N
# Проверка количества файлов в папке /LOG
if [ $COUNT -gt $N ]
then
# Создаём список последних N файлов
LIST=$(ls -t | head -n $N)
else
# Создаём список всех файлов, кроме скрытых
LIST=$(ls -t | head -n $COUNT)
fi
# Создание архива файлов папки /LOG
sudo tar -zcf LOG.tar.gz $LIST
# Перемещение архива в папку /BACKUP
sudo mv /LOG/LOG.tar.gz /BACKUP
cd /LOG
# Удаление файлов из папки /LOG
sudo rm $LIST
echo "/LOG is released."
else
echo "Use percent is $PCENT%, so it's OK."
fi
else
# Выдаёт ошибку, если папки /BACKUP не существует
echo "Error: /BACKUP/ doesn't exist."
fi
else
# Выдаёт ошибку, если папки /LOG не существует
echo "Error: /LOG/ doesn't exist."
fi