-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbash.sh
More file actions
69 lines (53 loc) · 2.27 KB
/
bash.sh
File metadata and controls
69 lines (53 loc) · 2.27 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
#!/bin/bash
# Проверка наличия аргумента
if [ $# -eq 0 ]; then
echo "Использование: $0 <имя_файла>"
exit 1
fi
FILENAME="$1"
SERVER_HOST="localhost"
SERVER_PORT="9999"
# 1. Проверка существования файла
if [ ! -f "$FILENAME" ]; then
echo "Файл $FILENAME не существует. Создаем файл и записываем 10 случайных строк..."
# Генерация 10 случайных строк
for i in {1..10}; do
# Генерируем случайную строку из букв и цифр
random_str=$(openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | head -c 32)
echo "Строка $i: $random_str" >> "$FILENAME"
done
echo "Файл $FILENAME создан и заполнен."
else
echo "Файл $FILENAME существует."
fi
# 2. Чтение и отправка строк через netcat
echo "Начинаем отправку строк на $SERVER_HOST:$SERVER_PORT..."
line_count=0
while IFS= read -r line; do
# Отправляем строку через netcat
echo "$line" | nc -w 1 "$SERVER_HOST" "$SERVER_PORT" 2>/dev/null
# Проверяем успешность отправки (nc возвращает 0 при успехе)
nc_status=$?
if [ $nc_status -eq 0 ]; then
echo " ✓ Отправлено: $line"
else
echo " ✗ Ошибка отправки: $line (сервер недоступен)"
fi
((line_count++))
# Небольшая пауза между отправками
sleep 0.1
done < "$FILENAME"
# 3. Вывод информации о количестве отправленных строк
echo "Отправка завершена. Всего отправлено строк: $line_count"
# 4. Запуск фонового процесса для записи времени в log.txt
echo "Запускаем фоновый процесс логирования..."
(
while true; do
echo "$(date '+%Y-%m-%d %H:%M:%S')" >> log.txt
sleep 60
done
) &
BG_PID=$!
echo "Фоновый процесс запущен с PID: $BG_PID"
echo "Для остановки выполните: kill $BG_PID"
exit 0