Jump to content
О фейках и дезинформации Read more... ×
Sign in to follow this  
SZlobaFM

llama VS granite-code VS qwen3-coder в простой задачке.

Recommended Posts

модели -вес 

[root@ALT /]# ollama list
NAME                        ID              SIZE     MODIFIED           
llama3.1:8b-text-fp16       722fd1ff1fda    16 GB    12 minutes ago        
granite-code:20b            59db7b531bb4    11 GB    About an hour ago     

qwen3-coder:30b-a3b-q8_0    7b438a19895a    32 GB    42 hours ago 

qwen3-coder:30b-a3b-fp16    0d2a10a65d2f    61 GB    23 hours ago       -этого не тестил, он чуть лучшее чем предыдущий      

 

задача 

Спойлер

код на  bash, проверяющий файл /etc/krb5.conf 

проверить что его содержимое полностью совпадает с нужным-оригинальным.

 к примеру таким, /etc/krb5.conf 
includedir /etc/krb5.conf.d/ 

[logging] 
# default = FILE:/var/log/krb5libs.log 
# kdc = FILE:/var/log/krb5kdc.log 
# admin_server = FILE:/var/log/kadmind.log 

[libdefaults] 
 dns_lookup_kdc = true 
 dns_lookup_realm = true 
 ticket_lifetime = 24h 
 renew_lifetime = 7d 
 forwardable = true 
 rdns = false 
# default_realm = EXAMPLE.COM 
 default_ccache_name = KEYRING:persistent:%{uid} 

[realms] 
# EXAMPLE.COM = { 
#  default_domain = example.com 
# } 

[domain_realm] 
# .example.com = EXAMPLE.COM 
# example.com = EXAMPLE.COM
 если совпадает вывести просто “/etc/krb5.conf ОК”

если не совпадает - нужно скачать его с сервера, проверить что скачался полныи правильный файл, после этого заменить системный /etc/krb5.conf 

ответы - 

 

1) llama3.1:8b-text-fp16

Спойлер

 

Сегодня в 13:48

1)скрипт проверяет файл на корректность-такой как описано выше
2)если нет файла (файл не создан) - скрипт создает файл из шаблона.
3) если есть но его содержимое отличается от нужного, то скачиваем новый и заменяем существующий на новй.

скрипт должен быть без привилегий
 
#!/bin/bash
#script name: kb5conf_check.sh
#
#Description: check /etc/krb5.conf for correctness
#
if [ -f /etc/krb5.conf ] ;
then 
   if ! diff /usr/local/krb5/config/etc/krb5.conf /etc/krb5.conf > /dev/null 2>&1 ; then
      echo "/etc/krb5.conf ОК"
   else
      echo "Wrong file /etc/krb5.conf. It will be changed in 3 seconds..."
      sleep 3
      cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
      chmod go+rw -R /etc/krb5.conf.d/
   fi 
else 
   echo "File /etc/krb5.conf doesn't exist. It will be created in 3 seconds..."
   sleep 3
   cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
   chmod go+rw -R /etc/krb5.conf.d/
fi

 

2)  granite-code:20b
Спойлер

 

Для проверки содержимого файла /etc/krb5.conf на соответствие оригинальному, можно использовать команду diff.

Например, чтобы проверить, не изменилась ли конфигурация Active Directory при импорте из другого сервера, можно сравнить его со своим оригинальным копиием:

 

bash

diff /etc/krb5.conf /path/to/original/copy

Если Comma Seperated Values (CSV) формат не подходит, можно использовать стандартный вывод diff с дополнительными опциями:

 

bash

diff -y --suppress-common-lines /etc/krb5.conf /path/to/original/copy

 

В этом случае оригинальная копия должна быть в другой папке, например /tmp.

Для замены системного файла /etc/krb5.conf на новый, можно использовать команду sudo:

 

bash

sudo cp /path/to/new/file /etc/krb5.conf

 

3) qwen3-coder:30b-a3b-q8_0

Спойлер

Вот несколько вариантов решения задачи на bash. Я приведу несколько подходов, от простого до более продуманного.

Вариант 1: Простой сравнение с хэшем

Спойлер

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_HASH="a1b2c3d4e5f6"  # хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
BACKUP_FILE="/etc/krb5.conf.backup"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    wget -O "$CONFIG_FILE" "http://your-server.com/krb5.conf"
    # Проверяем, что файл загрузился корректно
    if [ $? -eq 0 ]; then
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 2: Сравнение содержимого с оригиналом

Спойлер

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_FILE="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Создаем временный файл с оригиналом (или скачиваем его)
if [ ! -f "$ORIGINAL_FILE" ]; then
    echo "Создание временного оригинального файла..."
    cat > "$ORIGINAL_FILE" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF
fi

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Сравниваем файлы
if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 3: Более надежный вариант с проверкой прав и содержания

Спойлер

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_CONTENT="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Функция для сравнения содержимого
compare_files() {
    local file1="$1"
    local file2="$2"
    
    # Используем diff для более точного сравнения
    if diff -q "$file1" "$file2" > /dev/null 2>&1; then
        return 0  # файлы совпадают
    else
        return 1  # файлы отличаются
    fi
}

# Создаем временный файл с оригиналом
cat > "$ORIGINAL_CONTENT" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Проверяем, совпадает ли содержимое
if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
    echo "/etc/krb5.conf ОК"
    exit 0
fi

# Файлы не совпадают - обновляем
echo "Файл не соответствует оригиналу"

# Создаем резервную копию
if cp "$CONFIG_FILE" "$BACKUP_FILE"; then
    echo "Создана резервная копия"
else
    echo "Ошибка создания резервной копии"
    exit 1
fi

# Загружаем новый файл
if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
    echo "Файл загружен с сервера"
    
    # Проверяем, что файл загрузился корректно
    if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
        echo "Файл успешно обновлен"
        # Удаляем временный файл
        rm -f "$ORIGINAL_CONTENT"
        exit 0
    else
        echo "Ошибка: файл загружен некорректно"
        # Восстанавливаем резервную копию
        if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
            echo "Файл восстановлен из резервной копии"
        fi
        rm -f "$ORIGINAL_CONTENT"
        exit 1
    fi
else
    echo "Ошибка загрузки файла"
    # Восстанавливаем резервную копию
    if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
        echo "Файл восстановлен из резервной копии"
    fi
    rm -f "$ORIGINAL_CONTENT"
    exit 1
fi

Вариант 4: Использование md5sum для проверки

Спойлер

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
ORIGINAL_HASH="a1b2c3d4e5f6"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
            exit 1
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
        exit 1
    fi
fi

 

Как использовать:

  1. Замените http://your-server.com/krb5.conf на реальный URL вашего сервера
  2. Получите хэш оригинального файла командой:
    bash
    md5sum /etc/krb5.conf
  3. Замените ORIGINAL_HASH на реальный хэш
  4. Сделайте скрипт исполняемым:
    bash
    chmod +x check_krb5.sh
  5. Запустите скрипт:
    bash
    ./check_krb5.sh

Рекомендации:

  • Всегда создавайте резервные копии перед обновлением
  • Используйте diff или md5sum для точной проверки
  • Добавьте логирование для отладки
  • Убедитесь, что у скрипта есть права на запись в /etc/
  • Рассмотрите использование scp или rsync вместо wget для более надежной передачи файлов


ответили первые два мгновенно фактически. последний писал минуты две всю портянуку.

  • Thanks (+1) 3
  • Confused 1

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 50 минут назад:

модели -вес 

[root@ALT /]# ollama list
NAME                        ID              SIZE     MODIFIED           
llama3.1:8b-text-fp16       722fd1ff1fda    16 GB    12 minutes ago        
granite-code:20b            59db7b531bb4    11 GB    About an hour ago     

qwen3-coder:30b-a3b-q8_0    7b438a19895a    32 GB    42 hours ago 

qwen3-coder:30b-a3b-fp16    0d2a10a65d2f    61 GB    23 hours ago       -этого не тестил, он чуть лучшее чем предыдущий      

 

задача 

  Показать контент

код на  bash, проверяющий файл /etc/krb5.conf 

проверить что его содержимое полностью совпадает с нужным-оригинальным.

 к примеру таким, /etc/krb5.conf 
includedir /etc/krb5.conf.d/ 

[logging] 
# default = FILE:/var/log/krb5libs.log 
# kdc = FILE:/var/log/krb5kdc.log 
# admin_server = FILE:/var/log/kadmind.log 

[libdefaults] 
 dns_lookup_kdc = true 
 dns_lookup_realm = true 
 ticket_lifetime = 24h 
 renew_lifetime = 7d 
 forwardable = true 
 rdns = false 
# default_realm = EXAMPLE.COM 
 default_ccache_name = KEYRING:persistent:%{uid} 

[realms] 
# EXAMPLE.COM = { 
#  default_domain = example.com 
# } 

[domain_realm] 
# .example.com = EXAMPLE.COM 
# example.com = EXAMPLE.COM
 если совпадает вывести просто “/etc/krb5.conf ОК”

если не совпадает - нужно скачать его с сервера, проверить что скачался полныи правильный файл, после этого заменить системный /etc/krb5.conf 

ответы - 

 

1) llama3.1:8b-text-fp16

  Показать контент

 

Сегодня в 13:48

1)скрипт проверяет файл на корректность-такой как описано выше
2)если нет файла (файл не создан) - скрипт создает файл из шаблона.
3) если есть но его содержимое отличается от нужного, то скачиваем новый и заменяем существующий на новй.

скрипт должен быть без привилегий
 
#!/bin/bash
#script name: kb5conf_check.sh
#
#Description: check /etc/krb5.conf for correctness
#
if [ -f /etc/krb5.conf ] ;
then 
   if ! diff /usr/local/krb5/config/etc/krb5.conf /etc/krb5.conf > /dev/null 2>&1 ; then
      echo "/etc/krb5.conf ОК"
   else
      echo "Wrong file /etc/krb5.conf. It will be changed in 3 seconds..."
      sleep 3
      cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
      chmod go+rw -R /etc/krb5.conf.d/
   fi 
else 
   echo "File /etc/krb5.conf doesn't exist. It will be created in 3 seconds..."
   sleep 3
   cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
   chmod go+rw -R /etc/krb5.conf.d/
fi

 

2)  granite-code:20b
  Показать контент

 

Для проверки содержимого файла /etc/krb5.conf на соответствие оригинальному, можно использовать команду diff.

Например, чтобы проверить, не изменилась ли конфигурация Active Directory при импорте из другого сервера, можно сравнить его со своим оригинальным копиием:

 

bash

diff /etc/krb5.conf /path/to/original/copy

Если Comma Seperated Values (CSV) формат не подходит, можно использовать стандартный вывод diff с дополнительными опциями:

 

bash

diff -y --suppress-common-lines /etc/krb5.conf /path/to/original/copy

 

В этом случае оригинальная копия должна быть в другой папке, например /tmp.

Для замены системного файла /etc/krb5.conf на новый, можно использовать команду sudo:

 

bash

sudo cp /path/to/new/file /etc/krb5.conf

 

3) qwen3-coder:30b-a3b-q8_0

  Показать контент

Вот несколько вариантов решения задачи на bash. Я приведу несколько подходов, от простого до более продуманного.

Вариант 1: Простой сравнение с хэшем

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_HASH="a1b2c3d4e5f6"  # хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
BACKUP_FILE="/etc/krb5.conf.backup"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    wget -O "$CONFIG_FILE" "http://your-server.com/krb5.conf"
    # Проверяем, что файл загрузился корректно
    if [ $? -eq 0 ]; then
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 2: Сравнение содержимого с оригиналом

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_FILE="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Создаем временный файл с оригиналом (или скачиваем его)
if [ ! -f "$ORIGINAL_FILE" ]; then
    echo "Создание временного оригинального файла..."
    cat > "$ORIGINAL_FILE" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF
fi

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Сравниваем файлы
if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 3: Более надежный вариант с проверкой прав и содержания

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_CONTENT="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Функция для сравнения содержимого
compare_files() {
    local file1="$1"
    local file2="$2"
    
    # Используем diff для более точного сравнения
    if diff -q "$file1" "$file2" > /dev/null 2>&1; then
        return 0  # файлы совпадают
    else
        return 1  # файлы отличаются
    fi
}

# Создаем временный файл с оригиналом
cat > "$ORIGINAL_CONTENT" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Проверяем, совпадает ли содержимое
if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
    echo "/etc/krb5.conf ОК"
    exit 0
fi

# Файлы не совпадают - обновляем
echo "Файл не соответствует оригиналу"

# Создаем резервную копию
if cp "$CONFIG_FILE" "$BACKUP_FILE"; then
    echo "Создана резервная копия"
else
    echo "Ошибка создания резервной копии"
    exit 1
fi

# Загружаем новый файл
if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
    echo "Файл загружен с сервера"
    
    # Проверяем, что файл загрузился корректно
    if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
        echo "Файл успешно обновлен"
        # Удаляем временный файл
        rm -f "$ORIGINAL_CONTENT"
        exit 0
    else
        echo "Ошибка: файл загружен некорректно"
        # Восстанавливаем резервную копию
        if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
            echo "Файл восстановлен из резервной копии"
        fi
        rm -f "$ORIGINAL_CONTENT"
        exit 1
    fi
else
    echo "Ошибка загрузки файла"
    # Восстанавливаем резервную копию
    if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
        echo "Файл восстановлен из резервной копии"
    fi
    rm -f "$ORIGINAL_CONTENT"
    exit 1
fi

Вариант 4: Использование md5sum для проверки

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
ORIGINAL_HASH="a1b2c3d4e5f6"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
            exit 1
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
        exit 1
    fi
fi

 

Как использовать:

  1. Замените http://your-server.com/krb5.conf на реальный URL вашего сервера
  2. Получите хэш оригинального файла командой:
    bash
    md5sum /etc/krb5.conf
     
  3. Замените ORIGINAL_HASH на реальный хэш
  4. Сделайте скрипт исполняемым:
    bash
    chmod +x check_krb5.sh
  5. Запустите скрипт:
    bash
    ./check_krb5.sh

Рекомендации:

  • Всегда создавайте резервные копии перед обновлением
  • Используйте diff или md5sum для точной проверки
  • Добавьте логирование для отладки
  • Убедитесь, что у скрипта есть права на запись в /etc/
  • Рассмотрите использование scp или rsync вместо wget для более надежной передачи файлов


ответили первые два мгновенно фактически. последний писал минуты две всю портянуку.

А я пива с утра планировал.... а пришлось.... 

  • Haha 1

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 1 час назад:

модели -вес 

[root@ALT /]# ollama list
NAME                        ID              SIZE     MODIFIED           
llama3.1:8b-text-fp16       722fd1ff1fda    16 GB    12 minutes ago        
granite-code:20b            59db7b531bb4    11 GB    About an hour ago     

qwen3-coder:30b-a3b-q8_0    7b438a19895a    32 GB    42 hours ago 

qwen3-coder:30b-a3b-fp16    0d2a10a65d2f    61 GB    23 hours ago       -этого не тестил, он чуть лучшее чем предыдущий      

 

задача 

  Показать контент

код на  bash, проверяющий файл /etc/krb5.conf 

проверить что его содержимое полностью совпадает с нужным-оригинальным.

 к примеру таким, /etc/krb5.conf 
includedir /etc/krb5.conf.d/ 

[logging] 
# default = FILE:/var/log/krb5libs.log 
# kdc = FILE:/var/log/krb5kdc.log 
# admin_server = FILE:/var/log/kadmind.log 

[libdefaults] 
 dns_lookup_kdc = true 
 dns_lookup_realm = true 
 ticket_lifetime = 24h 
 renew_lifetime = 7d 
 forwardable = true 
 rdns = false 
# default_realm = EXAMPLE.COM 
 default_ccache_name = KEYRING:persistent:%{uid} 

[realms] 
# EXAMPLE.COM = { 
#  default_domain = example.com 
# } 

[domain_realm] 
# .example.com = EXAMPLE.COM 
# example.com = EXAMPLE.COM
 если совпадает вывести просто “/etc/krb5.conf ОК”

если не совпадает - нужно скачать его с сервера, проверить что скачался полныи правильный файл, после этого заменить системный /etc/krb5.conf 

ответы - 

 

1) llama3.1:8b-text-fp16

  Показать контент

 

Сегодня в 13:48

1)скрипт проверяет файл на корректность-такой как описано выше
2)если нет файла (файл не создан) - скрипт создает файл из шаблона.
3) если есть но его содержимое отличается от нужного, то скачиваем новый и заменяем существующий на новй.

скрипт должен быть без привилегий
 
#!/bin/bash
#script name: kb5conf_check.sh
#
#Description: check /etc/krb5.conf for correctness
#
if [ -f /etc/krb5.conf ] ;
then 
   if ! diff /usr/local/krb5/config/etc/krb5.conf /etc/krb5.conf > /dev/null 2>&1 ; then
      echo "/etc/krb5.conf ОК"
   else
      echo "Wrong file /etc/krb5.conf. It will be changed in 3 seconds..."
      sleep 3
      cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
      chmod go+rw -R /etc/krb5.conf.d/
   fi 
else 
   echo "File /etc/krb5.conf doesn't exist. It will be created in 3 seconds..."
   sleep 3
   cat /usr/local/krb5/config/etc/krb5.conf > /etc/krb5.conf
   chmod go+rw -R /etc/krb5.conf.d/
fi

 

2)  granite-code:20b
  Показать контент

 

Для проверки содержимого файла /etc/krb5.conf на соответствие оригинальному, можно использовать команду diff.

Например, чтобы проверить, не изменилась ли конфигурация Active Directory при импорте из другого сервера, можно сравнить его со своим оригинальным копиием:

 

bash

diff /etc/krb5.conf /path/to/original/copy

Если Comma Seperated Values (CSV) формат не подходит, можно использовать стандартный вывод diff с дополнительными опциями:

 

bash

diff -y --suppress-common-lines /etc/krb5.conf /path/to/original/copy

 

В этом случае оригинальная копия должна быть в другой папке, например /tmp.

Для замены системного файла /etc/krb5.conf на новый, можно использовать команду sudo:

 

bash

sudo cp /path/to/new/file /etc/krb5.conf

 

3) qwen3-coder:30b-a3b-q8_0

  Показать контент

Вот несколько вариантов решения задачи на bash. Я приведу несколько подходов, от простого до более продуманного.

Вариант 1: Простой сравнение с хэшем

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_HASH="a1b2c3d4e5f6"  # хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
BACKUP_FILE="/etc/krb5.conf.backup"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    wget -O "$CONFIG_FILE" "http://your-server.com/krb5.conf"
    # Проверяем, что файл загрузился корректно
    if [ $? -eq 0 ]; then
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 2: Сравнение содержимого с оригиналом

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_FILE="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Создаем временный файл с оригиналом (или скачиваем его)
if [ ! -f "$ORIGINAL_FILE" ]; then
    echo "Создание временного оригинального файла..."
    cat > "$ORIGINAL_FILE" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF
fi

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Сравниваем файлы
if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        if cmp -s "$CONFIG_FILE" "$ORIGINAL_FILE"; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
    fi
fi

Вариант 3: Более надежный вариант с проверкой прав и содержания

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
ORIGINAL_CONTENT="/tmp/krb5.conf.original"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Функция для сравнения содержимого
compare_files() {
    local file1="$1"
    local file2="$2"
    
    # Используем diff для более точного сравнения
    if diff -q "$file1" "$file2" > /dev/null 2>&1; then
        return 0  # файлы совпадают
    else
        return 1  # файлы отличаются
    fi
}

# Создаем временный файл с оригиналом
cat > "$ORIGINAL_CONTENT" << 'EOF'
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
EOF

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Проверяем, совпадает ли содержимое
if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
    echo "/etc/krb5.conf ОК"
    exit 0
fi

# Файлы не совпадают - обновляем
echo "Файл не соответствует оригиналу"

# Создаем резервную копию
if cp "$CONFIG_FILE" "$BACKUP_FILE"; then
    echo "Создана резервная копия"
else
    echo "Ошибка создания резервной копии"
    exit 1
fi

# Загружаем новый файл
if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
    echo "Файл загружен с сервера"
    
    # Проверяем, что файл загрузился корректно
    if compare_files "$CONFIG_FILE" "$ORIGINAL_CONTENT"; then
        echo "Файл успешно обновлен"
        # Удаляем временный файл
        rm -f "$ORIGINAL_CONTENT"
        exit 0
    else
        echo "Ошибка: файл загружен некорректно"
        # Восстанавливаем резервную копию
        if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
            echo "Файл восстановлен из резервной копии"
        fi
        rm -f "$ORIGINAL_CONTENT"
        exit 1
    fi
else
    echo "Ошибка загрузки файла"
    # Восстанавливаем резервную копию
    if cp "$BACKUP_FILE" "$CONFIG_FILE"; then
        echo "Файл восстановлен из резервной копии"
    fi
    rm -f "$ORIGINAL_CONTENT"
    exit 1
fi

Вариант 4: Использование md5sum для проверки

  Показать контент

#!/bin/bash

CONFIG_FILE="/etc/krb5.conf"
BACKUP_FILE="/etc/krb5.conf.backup"
SERVER_URL="http://your-server.com/krb5.conf"

# Хэш оригинального файла (получите его командой: md5sum /etc/krb5.conf)
ORIGINAL_HASH="a1b2c3d4e5f6"

# Проверяем наличие файла
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Файл $CONFIG_FILE не найден"
    exit 1
fi

# Получаем хэш текущего файла
CURRENT_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)

# Сравниваем хэши
if [ "$CURRENT_HASH" = "$ORIGINAL_HASH" ]; then
    echo "/etc/krb5.conf ОК"
else
    echo "Файл не соответствует оригиналу"
    
    # Создаем резервную копию
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    
    # Загружаем новый файл
    if wget -O "$CONFIG_FILE" "$SERVER_URL"; then
        # Проверяем, что файл загрузился корректно
        NEW_HASH=$(md5sum "$CONFIG_FILE" | cut -d' ' -f1)
        if [ "$NEW_HASH" = "$ORIGINAL_HASH" ]; then
            echo "Файл успешно обновлен"
        else
            echo "Ошибка: файл загружен некорректно"
            # Восстанавливаем резервную копию
            cp "$BACKUP_FILE" "$CONFIG_FILE"
            exit 1
        fi
    else
        echo "Ошибка загрузки файла"
        # Восстанавливаем резервную копию
        cp "$BACKUP_FILE" "$CONFIG_FILE"
        exit 1
    fi
fi

 

Как использовать:

  1. Замените http://your-server.com/krb5.conf на реальный URL вашего сервера
  2. Получите хэш оригинального файла командой:
    bash
    md5sum /etc/krb5.conf
     
  3. Замените ORIGINAL_HASH на реальный хэш
  4. Сделайте скрипт исполняемым:
    bash
    chmod +x check_krb5.sh
  5. Запустите скрипт:
    bash
    ./check_krb5.sh

Рекомендации:

  • Всегда создавайте резервные копии перед обновлением
  • Используйте diff или md5sum для точной проверки
  • Добавьте логирование для отладки
  • Убедитесь, что у скрипта есть права на запись в /etc/
  • Рассмотрите использование scp или rsync вместо wget для более надежной передачи файлов


ответили первые два мгновенно фактически. последний писал минуты две всю портянуку.

А пояснения для несведущих зажали, да? 😏🤔

Edited by Romansata
  • Thanks (+1) 2

Share this post


Link to post
Share on other sites
ДоброПожаловать сказал(а) 7 минут назад:

Жаль что я не программист, а то бы заценил всю красоту...

Возможно это и не то, но приблизительно:

Спойлер

Picture background

 

  • Thanks (+1) 2
  • Haha 3

Share this post


Link to post
Share on other sites
Romansata сказал(а) 20 минут назад:

А пояснения для несведущих зажали, да? 😏🤔

там всё понятно. последний дал не рекомендации. а три готовых скрипта. написанных с пояснениями, и финтифлюшками.

Квен рулит. 

  • Thanks (+1) 3

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 8 минут назад:

там всё понятно. последний дал не рекомендации. а три готовых скрипта. написанных с пояснениями, и финтифлюшками.

Квен рулит. 

 

Когда как ...

Share this post


Link to post
Share on other sites
Ученик волшебника сказал(а) Только что:

Когда как ...

проверил на баше - и всё видно. что рулит. 

а как - да может рисует он хуже чем стейблдифьюжн. но. я о коде. и он рулит в этой троице. факт. 

Share this post


Link to post
Share on other sites
paramparam сказал(а) 42 минуты назад:

Возможно это и не то, но приблизительно:

  Скрыть контент

Picture background

 

 

П.С.: А у них - лапки!  :kolobok_eek:

Edited by ДоброПожаловать
  • Thanks (+1) 2
  • Haha 1

Share this post


Link to post
Share on other sites
ДоброПожаловать сказал(а) 4 минуты назад:

 

П.С.: А у них - лапки!  :kolobok_eek:

А что исчо может придумать ИИ к попам?:drinks:

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 36 минут назад:

там всё понятно. последний дал не рекомендации. а три готовых скрипта. написанных с пояснениями, и финтифлюшками.

Квен рулит. 

Ну она умненькая, но...иногда. Придумать мне для своей же сестры Qwen-image набор токенов, отключающих лампы в изо-генерациях так и не смогла. 😂

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 1 час назад:

ответили первые два мгновенно фактически. последний писал минуты две всю портянуку.

Тёма, а смысл в этом какой? Далек от этой истории (имея в виду ИИ), но у каждого пишущего таких сниппетов в башке - как у дурака фантиков. Мозгу, конечно, от этого не легче, но оно уже там... 
Кмк, нынче сложности начинаются не на уровне конкретных методов, а сильно дальше и глыбже. Абстракции и слабосвязанный код теперь "нашефсьо". А это вот куда?
 

  • Thanks (+1) 2

Share this post


Link to post
Share on other sites
Скальпель сказал(а) 20 минут назад:

Тёма, а смысл в этом какой? Далек от этой истории (имея в виду ИИ), но у каждого пишущего таких сниппетов в башке - как у дурака фантиков. Мозгу, конечно, от этого не легче, но оно уже там... 
Кмк, нынче сложности начинаются не на уровне конкретных методов, а сильно дальше и глыбже. Абстракции и слабосвязанный код теперь "нашефсьо". А это вот куда?

Моя то работа не писать. И если баш, и пош, да, то питон вообще не знаю. Вот он мне и лабает на питоне. 

  • Thanks (+1) 2

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 1 час назад:

проверил на баше - и всё видно. что рулит. 

а как - да может рисует он хуже чем стейблдифьюжн. но. я о коде. и он рулит в этой троице. факт. 

 

Для кода на  пайтон предпочитаю deepseek. 

Qwen не зашел.

Share this post


Link to post
Share on other sites
Ученик волшебника сказал(а) 3 часа назад:

 

Для кода на  пайтон предпочитаю deepseek. 

Qwen не зашел.

У Qwen недавно обновление вышло, заточенное под кодеров - попробуйте, может зайдет.

Share this post


Link to post
Share on other sites
LexxKonrad сказал(а) 10 минут назад:

У Qwen недавно обновление вышло, заточенное под кодеров - попробуйте, может зайдет.

Посмотрим ...

 

Share this post


Link to post
Share on other sites
LexxKonrad сказал(а) 45 минут назад:

 Qwen недавно обновление вышло, заточенное под кодеров

SZlobaFM сказал(а) 7 часов назад:

qwen3-coder:30b-a3b-q8_0

qwen3-coder:30b-a3b-fp1

они и есть https://ollama.com/library/qwen3-coder/tags

 

 

Ученик волшебника сказал(а) 3 часа назад:

Для кода на  пайтон предпочитаю deepseek. 

Qwen не зашел.

х.з. сразу сел на Квена, в онлайн. 

эти тесты  офлайн. если кому то будет сильно хотеться денег. про запас сделал.

а дипсик - он иначе грузится в компе. ему в отличии от квена - надо оперативы больше чем модель,  у видюхи. 

что автоматом вычеркивает все модели более 15 гигов, для меня. 

 

загрузил его (дипа)  модель 23 вроде гига - глючит. не хватает ему. прям видно пишет  - иероглифами.

 

квен же - пердит. свистит. но модель 62  гб я запустил. qwen3-coder:30b-a3b-fp16

дал ей скрипт на 1970 строчек на питоне. посмотри говорю - что как. скажи рекомендации. 

10 минут думал. комп. 

 выдал на 99% похожий ответ, на то что  даёт qwen max (960 вроде гигов - в соседней вкладке открыл онлайн и сверял)

 

  • Thanks (+1) 2

Share this post


Link to post
Share on other sites
SZlobaFM сказал(а) 6 часов назад:

там всё понятно. последний дал не рекомендации. а три готовых скрипта. написанных с пояснениями, и финтифлюшками.

Квен рулит. 

В моей картинке рулит кто-то но не туда: см. ноги.

Простите за вход в высокоученую беседу.

Edited by paramparam

Share this post


Link to post
Share on other sites
paramparam сказал(а) 6 минут назад:

В моей картинке рулит кто-то но не туда: см. ноги.

)) нарисованные жопки .. ну хоть жопки. а то есть тут один. с титьками )

  • Thanks (+1) 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×