Compare commits
24 Commits
7b9b0a4ec0
...
349f4ae79e
Author | SHA1 | Date | |
---|---|---|---|
349f4ae79e | |||
78b1633710 | |||
2126e4455b | |||
bbb7197a5f | |||
205a21c5ec | |||
25fded3f7b | |||
6b73f03ffc | |||
a568e6bb38 | |||
291030655a | |||
4ffcd4b00d | |||
b733305f21 | |||
a594db77f3 | |||
83fb478a06 | |||
3312b35ece | |||
bb8995fb5f | |||
70fad940ba | |||
bcf921d82c | |||
022a8090f6 | |||
a881094492 | |||
e72bbca713 | |||
627cd7d499 | |||
8a73b135c0 | |||
3858c94c4a | |||
0976fe8ad0 |
29
.gitea/workflows/build.yaml
Normal file
29
.gitea/workflows/build.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: Deploy to Server (Docker)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- train_go
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Build Docker image
|
||||||
|
run: docker build -t registry.gocommunity.ru:5000/my-app-image .
|
||||||
|
|
||||||
|
- name: List Docker image
|
||||||
|
run: docker images
|
||||||
|
|
||||||
|
- name: Login to registry hub.
|
||||||
|
run: docker login -u podman -p PodMan25! registry.gocommunity.ru:5000
|
||||||
|
|
||||||
|
- name: Push Docker image to registry
|
||||||
|
run: docker push registry.gocommunity.ru:5000/my-app-image:latest
|
||||||
|
|
||||||
|
- name: Push Docker image to registry
|
||||||
|
run: echo "Happy New Year!!"
|
46
bash/task1/log_analyzer.sh
Executable file
46
bash/task1/log_analyzer.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Проверка наличия аргумента
|
||||||
|
if [ "$#" -ne 1 ]; then
|
||||||
|
echo "Ошибка: Необходимо указать путь к лог-файлу."
|
||||||
|
echo "Использование: $0 <путь к лог-файлу>"
|
||||||
|
echo "Этот скрипт анализирует лог-файл на наличие ошибок, предупреждений и информационных сообщений."
|
||||||
|
echo "$0 /var/log/syslog"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Путь к лог-файлу
|
||||||
|
log_file_path="$1"
|
||||||
|
|
||||||
|
# Проверка существования файла
|
||||||
|
if [ ! -f "$log_file_path" ]; then
|
||||||
|
echo "Ошибка: Файл '$log_file_path' не существует."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Переменные для хранения количества сообщений
|
||||||
|
error_count=0
|
||||||
|
warning_count=0
|
||||||
|
info_count=0
|
||||||
|
|
||||||
|
# Чтение лог-файла и подсчет сообщений
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
case "$line" in
|
||||||
|
*"ERROR"*)
|
||||||
|
((error_count++))
|
||||||
|
;;
|
||||||
|
*"WARNING"*)
|
||||||
|
((warning_count++))
|
||||||
|
;;
|
||||||
|
*"INFO"*)
|
||||||
|
((info_count++))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done < "$log_file_path"
|
||||||
|
|
||||||
|
# Вывод результатов
|
||||||
|
echo "Количество сообщений в лог-файле:"
|
||||||
|
echo "Ошибки: $error_count"
|
||||||
|
echo "Предупреждения: $warning_count"
|
||||||
|
echo "Информационные сообщения: $info_count"
|
40
bash/task2/backup.sh
Executable file
40
bash/task2/backup.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Проверка аргументов
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Использование: $0 <путь_к_каталогу_для_резервной_копии> <путь_к_каталогу_для_сохранения>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Получаем аргументы
|
||||||
|
source_dir="$1"
|
||||||
|
backup_dir="$2"
|
||||||
|
|
||||||
|
# Проверяем, существует ли исходный каталог
|
||||||
|
if [ ! -d "$source_dir" ]; then
|
||||||
|
echo "Ошибка: Исходный каталог '$source_dir' не найден."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Создаем каталог для резервных копий, если он не существует
|
||||||
|
mkdir -p "$backup_dir"
|
||||||
|
|
||||||
|
# Получаем текущее время
|
||||||
|
timestamp=$(date +"%Y%m%d_%H%M%S")
|
||||||
|
|
||||||
|
# Создаем имя файла резервной копии
|
||||||
|
backup_file="backup_${timestamp}.tar.gz"
|
||||||
|
|
||||||
|
# Полный путь к архиву
|
||||||
|
backup_path="${backup_dir}/${backup_file}"
|
||||||
|
|
||||||
|
# Создание архива
|
||||||
|
tar -czf "$backup_path" -C "$source_dir" .
|
||||||
|
|
||||||
|
# Проверка успешности создания архива
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Резервная копия успешно создана: $backup_path"
|
||||||
|
else
|
||||||
|
echo "Ошибка: Не удалось создать резервную копию."
|
||||||
|
exit 1
|
||||||
|
fi
|
15
bash/task3/disk_monitoring.sh
Normal file
15
bash/task3/disk_monitoring.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Указываем пороговое значение использования (например, 50%)
|
||||||
|
LIMIT=50
|
||||||
|
|
||||||
|
# Указываем почтовый адрес для уведомлений
|
||||||
|
EMAIL="walleri1@yandex.ru"
|
||||||
|
|
||||||
|
# Получаем текущее использование дискового пространства
|
||||||
|
USAGE=$(df -h / | awk 'NR==2 {gsub("%",""); print $5}')
|
||||||
|
|
||||||
|
# Проверяем, превышает ли использование пороговое значение
|
||||||
|
if [ "$USAGE" -gt "$LIMIT" ]; then
|
||||||
|
echo "Дисковое пространство переполнено: ${USAGE}% использовано." | mail -s "Предупреждение: Использование дискового пространства" "$EMAIL"
|
||||||
|
fi
|
1
bash/test_branch.sh
Normal file
1
bash/test_branch.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
#!/bin/bash
|
23
go/cmd/main.go
Normal file
23
go/cmd/main.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
time "time"
|
||||||
|
|
||||||
|
cycle "train_golang/pkg"
|
||||||
|
)
|
||||||
|
|
||||||
|
func add(a, b int) {
|
||||||
|
fmt.Println("Sum = ", a+b)
|
||||||
|
}
|
||||||
|
|
||||||
|
func sub(a, b int) {
|
||||||
|
fmt.Println("Sub = ", a-b)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
go add(5, 6)
|
||||||
|
go sub(7, 9)
|
||||||
|
cycle.SimpleForCycle()
|
||||||
|
time.Sleep(1 * time.Second)
|
||||||
|
}
|
11
go/pkg/cycle.go
Normal file
11
go/pkg/cycle.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package cycle
|
||||||
|
|
||||||
|
import (
|
||||||
|
fmt "fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SimpleForCycle() {
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
fmt.Println("Iter: ", i)
|
||||||
|
}
|
||||||
|
}
|
25
go/summ/summ.go
Normal file
25
go/summ/summ.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
summ := 0
|
||||||
|
|
||||||
|
// Проходим по всем аргументам командной строки, начиная с первого
|
||||||
|
for i := 1; i < len(os.Args); i++ {
|
||||||
|
// Преобразуем аргумент в целое число
|
||||||
|
num, err := strconv.Atoi(os.Args[i])
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "Ошибка преобразования аргумента '%s': %v\n", os.Args[i], err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
summ += num
|
||||||
|
}
|
||||||
|
|
||||||
|
// Выводим результат
|
||||||
|
fmt.Println(summ)
|
||||||
|
}
|
@ -1,9 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println("Hello World!")
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user