2025-09-16 20:08:22
$ cat upddiscord
#!/bin/bash
# Скрипт для обновления Discord с удалением старой версии и настройкой прав chrome-sandbox
# Путь к директории Discord
DISCORD_DIR="/home/naka/Discord"
# URL для загрузки последней версии Discord (официальный API)
DISCORD_URL="https://discord.com/api/download?platform=linux&format=tar.gz"
# Временный файл для загрузки
TEMP_FILE="/tmp/Discord.tar.gz"
# Минимальный размер файла для проверки успешного скачивания (в байтах, Discord ~200MB+)
MIN_SIZE=100000000
# Проверка, запущен ли скрипт с правами root
if [ "$EUID" -ne 0 ]; then
echo "Ошибка: Скрипт должен быть запущен с правами root (sudo)."
exit 1
fi
# Проверка, существует ли директория Discord
if [ ! -d "$DISCORD_DIR" ]; then
echo "Ошибка: Директория $DISCORD_DIR не существует."
exit 1
fi
# Проверка, запущен ли Discord
if pgrep -f "Discord" > /dev/null; then
echo "Discord запущен. Закрываем процесс..."
# pkill -f "Discord"
killall Discord
sleep 2
# Дополнительная проверка, чтобы убедиться, что процесс закрыт
if pgrep -f "Discord" > /dev/null; then
echo "Предупреждение: Discord не закрылся полностью. Попробуйте закрыть вручную."
fi
fi
# Скачивание последней версии
echo "Скачивание последней версии Discord..."
wget -O "$TEMP_FILE" "$DISCORD_URL" --quiet --show-progress
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось скачать обновление. Проверьте интернет-соединение или URL."
exit 1
fi
# Проверка размера файла (чтобы убедиться, что скачивание прошло успешно)
FILE_SIZE=$(stat -c%s "$TEMP_FILE" 2>/dev/null || echo 0)
if [ "$FILE_SIZE" -lt "$MIN_SIZE" ]; then
echo "Ошибка: Скачанный файл слишком мал ($FILE_SIZE байт). Возможно, ошибка 403 или другой HTTP-код. Удаляем и выходим."
rm -f "$TEMP_FILE"
exit 1
fi
echo "Скачивание успешно: файл размером $((FILE_SIZE / 1024 / 1024)) MB."
# Удаление старой версии (с резервным копированием, если нужно; здесь просто удаляем)
echo "Удаление старой версии Discord..."
rm -rf "$DISCORD_DIR"/*
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось удалить старую версию."
rm -f "$TEMP_FILE"
exit 1
fi
# Распаковка новой версии
echo "Распаковка новой версии..."
tar -xzf "$TEMP_FILE" -C "$DISCORD_DIR" --strip-components=1
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось распаковать архив. Проверьте структуру архива."
rm -f "$TEMP_FILE"
exit 1
fi
# Установка прав для chrome-sandbox, если файл существует
SANDBOX_PATH="$DISCORD_DIR/chrome-sandbox"
if [ -f "$SANDBOX_PATH" ]; then
echo "Настройка прав для chrome-sandbox..."
chown root: "$SANDBOX_PATH"
chmod 4755 "$SANDBOX_PATH"
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось настроить права для chrome-sandbox."
exit 1
fi
echo "Права для chrome-sandbox установлены успешно."
else
echo "Предупреждение: Файл chrome-sandbox не найден в $SANDBOX_PATH. Возможно, структура изменилась."
fi
# Удаление временного файла
echo "Удаление временного файла..."
rm -f "$TEMP_FILE"
echo "Обновление Discord успешно завершено! Можно запускать Discord."
exit 0
Back to list