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