Как скачать дистрибутивы 1С ubuntu/debian в терминале

14.02.19

База данных - Инструменты администратора БД

Скрипт для скачивания дистрибутивов 1С ubuntu/debian в терминале.

Автор скриптаhttps://github.com/Infactum/onec_dock). Большое ему спасибо. Я просто сделал скрипт немного удобнее.

Скрипт предназначен для скачивания дистрибутива 1С для ubuntu/debian 64 в терминале.

#20190215  добавлена возможность скачивать скриптом "старые" версии.

Это очень полезно, когда админу приходится обновлять сервер из сети с плохим качеством связи или очень дорогим трафиком. Или админ просто любит терминал. :-)

Если в Вашей системе не установлен curl, добавить его можно командой

sudo apt install curl

Очень полезной для изучения может быть команда screen С помощью нее можно не переживать при разрывах соединения ssh с удаленным сервером. Закачка будет продолжаться. Ну, или можно просто запускать скрипт в фоновом режиме.

#!/bin/bash

#20190215

USERNAME=
PASSWORD=

NEW_VER='8.3.12.1469'

if [[ -z "$USERNAME" ]];then
    echo "USERNAME not set"
    exit 1
fi

if [[ -z "$PASSWORD" ]];then
    echo "PASSWORD not set"
    exit 1
fi

echo "Getting versions, please wait."

SRC=$(curl -c /tmp/cookies.txt -s -L https://releases.1c.ru)

ACTION=$(echo "$SRC" | grep -oP '(?<=form method="post" id="loginForm" action=")[^"]+(?=")')
EXECUTION=$(echo "$SRC" | grep -oP '(?<=input type="hidden" name="execution" value=")[^"]+(?=")')

curl -s -L \
    -o /dev/null \
    -b /tmp/cookies.txt \
    -c /tmp/cookies.txt \
    --data-urlencode "inviteCode=" \
    --data-urlencode "execution=$EXECUTION" \
    --data-urlencode "_eventId=submit" \
    --data-urlencode "username=$USERNAME" \
    --data-urlencode "password=$PASSWORD" \
    https://login.1c.ru"$ACTION"

if ! grep -q "TGC" /tmp/cookies.txt ;then
    echo "Auth failed"
    exit 1
fi

clear

curl -s -b /tmp/cookies.txt https://releases.1c.ru/project/Platform83 |

    grep 'a href="/version_files?nick=Platform83' |
    tr -s '="  ' ' ' |
    awk -F ' ' '{print $5}' |
    sort -V | pr -a -T -5 #|tail -5
read -i "8.3." -p "Input version for download: " -e VER

if [[ -z "$VER" ]];then
    echo "VERSION not set"
    exit 1
fi

if [[ "8.3." = "$VER" ]];then
    echo "Need full VERSION number"
    exit 1
fi

VER1=${VER//./_}

# if $VER >= $NEW_VER

if [[ $(echo -e $NEW_VER\\n$VER |sort -V|head -1) = $NEW_VER ]]; then
# new verision filename
  CLIENTLINK=$(curl -s -G \
    -b /tmp/cookies.txt \
    --data-urlencode "nick=Platform83" \
    --data-urlencode "ver=$VER" \
    --data-urlencode "path=Platform\\$VER1\\client_$VER1.deb64.tar.gz" \
    https://releases.1c.ru/version_file | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)')

  SERVERLINK=$(curl -s -G \
    -b /tmp/cookies.txt \
    --data-urlencode "nick=Platform83" \
    --data-urlencode "ver=$VER" \
    --data-urlencode "path=Platform\\$VER1\\deb64_$VER1.tar.gz" \
    https://releases.1c.ru/version_file | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)')
else
  # Old version filename
  CLIENTLINK=$(curl -s -G \
    -b /tmp/cookies.txt \
    --data-urlencode "nick=Platform83" \
    --data-urlencode "ver=$VER" \
    --data-urlencode "path=Platform\\${VER1}\\client.deb64.tar.gz" \
    https://releases.1c.ru/version_file | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)')

  SERVERLINK=$(curl -s -G \
    -b /tmp/cookies.txt \
    --data-urlencode "nick=Platform83" \
    --data-urlencode "ver=$VER" \
    --data-urlencode "path=Platform\\${VER1}\\deb64.tar.gz" \
    https://releases.1c.ru/version_file | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)')
fi

mkdir -p dist

curl --fail -b /tmp/cookies.txt -o dist/${VER}_client64.tar.gz -L "$CLIENTLINK"
curl --fail -b /tmp/cookies.txt -o dist/${VER}_server64.tar.gz -L "$SERVERLINK"

rm /tmp/cookies.txt

 

С уважением.

Консоль терминал скачать download linux ubuntu debian 1c дистрибутив обновление

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2961    12    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3492    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177720    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27367    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61309    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11742    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31105    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10973    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Infactum 315 16.04.18 15:31 Сейчас в теме
Для полезный изменений предусмотрены pull request'ы.
Только не пойму, что конкретно вы решили улучшить. Интерактивный режим? Так это было, только в "главном" скрипте:
onec_dock.sh -n
3. viptextil1 23 16.04.18 16:31 Сейчас в теме
(1)
Только не пойму, что конкретно вы решили улучшить.

Добавил кусочек для отображения доступных версий. Мне показалось, что так проще сделать выбор.
10. пользователь 19.04.18 06:22
Сообщение было скрыто модератором.
...
2. viptextil1 23 16.04.18 16:27 Сейчас в теме
pull request'ы


Вы уж извините, если что не так, но я совсем недавно начал заниматься Linux'ом, поэтому не знаю, что да как. Сейчас пытаюсь изучать bash. Делаю это на реальных задачах и хороших примерах.
4. webester 26 16.04.18 17:50 Сейчас в теме
Вы же не просто добавили какой-то кусок кода и закопипастили решение? Вы же снабдили код подробными комментами(иначе какой смысл? Кто понимает тот и сам допишет, кто не понимает,тот... ничего не понимает) и объяснили, прям в коде, где, что и зачем вы добавили, правда?
5. viptextil1 23 16.04.18 18:29 Сейчас в теме
(4)Ну, на авторство я и не претендую, о чем и указано в начале статьи. Там же указана ссылка на оригинальный код. Кому интересно, можно сравнить.
6. webester 26 17.04.18 02:26 Сейчас в теме
7. viptextil1 23 17.04.18 06:41 Сейчас в теме
(6)Роман, не могли бы Вы уточнить, про что вы писали?
8. webester 26 17.04.18 09:19 Сейчас в теме
(7)Хм странно, что приходится объяснять... хорошо, если перефразировать (4) мысль была следующая: как-то неправильно, тупо вставлять кусок кода на каком либо ЯП, это же вам не гист и не гитхаб. Имеет смысл снабдить код подробными комментариями. Которые бы объясняли, в какой момент, что происходит и почему. Что бы человеку было удобнее разобраться, или модифицировать его. Особенно прелестно вот это:
Очень полезной для изучения может быть команда screen

Что в ней особенно полезного в данном конкретном случае, нужно догадаться самому. Если уж не поленились запилить статью, постарайтесь сделать ее максимально удобной и полезной. В этом был смысл (4)
9. viptextil1 23 18.04.18 12:31 Сейчас в теме
(8) Спасибо, Роман. Ваши замечания очень важны для меня. Я обязательно воспользуюсь ими в следующий раз.
11. viptextil1 23 10.08.18 08:54 Сейчас в теме
На сайте 1с были изменены имена файлов (в лучшую сторону, на мой взгляд), но скрипт пришлось чуть-чуть подправить.
12. KiborG85 26 10.04.19 17:21 Сейчас в теме
Большое спасибо!
На основе этого скрипта организовал скачивание релизов.
А точнее: парсинг RSS новостей от 1С, скачивание нужных мне релизов (тут спасибо вашей статье), и публикация информации в живойЛенте Б24 через Rest API
13. viptextil1 23 11.04.19 08:22 Сейчас в теме
(12)Этот скрипт для интерактивного скачивания. Если Вы качаете в автоматическом режиме, лучше бы подошел изначальный скрипт download.sh от Infactum (ссылка вначале статьи). Ну, и поделитесь детищем, если не жалко.
14. KiborG85 26 11.04.19 15:34 Сейчас в теме
Если сильно пинать не будите за карявизну и криворукость, то вот:
 cat /home/myscrypt/1crss_v2.sh
#!/bin/bash
USERNAME=1c_partner_login
PASSWORD=1c_partner_password
DIR="/home/myscrypt"
configdir="/folder/share/1c_config/83"
b24url=b24portal.bitrix24.ua/rest
b24API=20/hfnz84ux67jds8
SRC=$(curl -c /tmp/cookies.txt -s -L releases.1c.eu)
RSS_URL=news.webits.1c.ru/news/updates_ru_eu/rss

ACTION=$(echo "$SRC" | grep -oP '(?<=form method="post" id="loginForm" action=")[^"]+(?=")')
EXECUTION=$(echo "$SRC" | grep -oP '(?<=input type="hidden" name="execution" value=")[^"]+(?=")')

curl -s -L \
    -o /dev/null \
    -b /tmp/cookies.txt \
    -c /tmp/cookies.txt \
    --data-urlencode "inviteCode=" \
    --data-urlencode "execution=$EXECUTION" \
    --data-urlencode "_eventId=submit" \
    --data-urlencode "username=$USERNAME" \
    --data-urlencode "password=$PASSWORD" \
    login.1c.eu"$ACTION"

if ! grep -q "TGC" /tmp/cookies.txt ;then
    echo "Auth failed"
    exit 1
fi


cd $DIR

#формируем список решений, который нас интересует
echo Продукт=Бухгалтерия для Украины > $DIR/myproducts
echo Продукт=Управление производственным предприятием для Украины >> $DIR/myproducts
echo Продукт=Управление торговым предприятием для Украины >> $DIR/myproducts
echo Продукт=Зарплата и Управление Персоналом для Украины >> $DIR/myproducts
echo Продукт=Общепит для Украины >> $DIR/myproducts
echo Продукт=Управление небольшой фирмой для Украины >> $DIR/myproducts
echo Продукт=Управление торговлей для Украины >> $DIR/myproducts
echo Продукт=Бухгалтерія будівельної організації >> $DIR/myproducts
echo Продукт=Бухгалтерия элеватора, мельницы и комбикормового завода для Украины >> $DIR/myproducts
#echo >> $DIR/myproducts


wget ${RSS_URL} -o $DIR/rssfile
for (( i=40; i > 0; i-- ))
do
guid=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/guid")
title=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/title")
body=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/description" | sed 's/&amr/&/')
vid=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/category[2]")
product=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/category[1]")
pubDate=$(cat $DIR/rss | xmlstarlet sel -t -v "/rss/channel/item["$i"]/pubDate")
grep -q $guid "$DIR/rsslog" || (

        if [[ $product =~ $(echo ^\($(paste -sd'|' $DIR/myproducts)\)$) ]]
                then
                if [[ $vid = "Вид новости обновлений=Публикация новой версии" ]]
                        then
                        echo "Бегом! Качать! " $title
                        echo "Body = " $body
                        URL=$(echo $body | cut -f2 -d'"' | sed 's/\&/\&/')
                        echo "URL is" $URL #(echo $body | cut -f2 -d'"' | sed 's/\&/\&/')
                        ver=$(echo $body | sed 's/.*ver=//' | cut -f1 -d'"')
                        echo "ver = " $ver
                        nick=$(echo $body | cut -f2 -d'"' | sed 's/\&/\&/' | cut -f2 -d'=' | sed 's/\&ver//g')
                        echo "NIK = " $nick
                        nicksmal=$(echo $nick | sed 's/[^a-Z]//g')
                        echo "SmalNick = " $nicksmal

                        #создаём папку, куда будем складировать обновления
                        mkdir -p $configdir/$nicksmal/$ver

                        #скачиваем самораспаковывающийся архив обновления конфигурации
                        relizdistributiv=$(curl -s -G \
                            -b /tmp/cookies.txt \
                            --data-urlencode "nick=$nick" \
                            --data-urlencode "ver=$ver" \
                            --data-urlencode "path=$nicksmal\\$(echo $ver | tr '.' '_')\\$(echo $nicksmal)_$(echo $ver | tr '.' '_')_updsetup.exe" \
                            releases.1c.eu/version_file  | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)')

                        curl --fail -b /tmp/cookies.txt -o $configdir/$nicksmal/$ver/$(echo $nicksmal)_$(echo $ver | tr '.' '_')_updsetup.exe -L "$relizdistributiv"


                        # скачиваем описание новости обновления
                        curl -s -G \
                                -b /tmp/cookies.txt \
                                --data-urlencode "nick=$nick" \
                                --data-urlencode "ver=$ver" \
                                --data-urlencode "path=$nicksmal\\$(echo $ver | tr '.' '_')\\news.htm" \
                                -o $configdir/$nicksmal/$ver/news.htm -L releases.1c.eu/version_file

                        # выставляем права на скачанные файлы
                        chmod -R 777 $configdir/$nicksmal/$ver

                        #создаём информационную задачу сотрудникам про выход релиза

                        lynx --dump $configdir/$nicksmal/$ver/news.htm > /tmp/news.txt
                        b24bodytext=$(cat /tmp/news.txt | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g' | tr '\n' ' ' | tr '"' '`"`')

                        curlDataZadacha='[{ "TITLE": "Новый релиз конфигурации '$nicksmal' версии '$ver'", "DESCRIPTION": "'$b24bodytext'", "RESPONSIBLE_ID": "1", "ACCOMPLICES": ["232", "1"], "AUDITORS": ["1", "232"]}]'
                        curl -H 'Content-Type: application/json' -d "$curlDataZadacha" $b24url/$b24API/task.item.add

                fi

                if [[ $vid = "Вид новости обновлений=Публикация плана версии" ]]
                        then
                        echo "i = " $i
                        echo "Скооро вйдет " $title
                        echo "Body = " $body
                        echo .

                        fi
                fi
        echo $guid >> $DIR/rsslog
        echo $title >> $DIR/rsslog
        echo $pubDate >> $DIR/rsslog
        echo . >> $DIR/rsslog

        )
done



rm $DIR/rssfile
rm $DIR/rss
rm $DIR/myproducts
Показать

Пришлось в коде убрать все http:// а то они тут, в комментарии, странно срабатывают.

Вот только не придумал как распаковывать скачанный архив $configdir/$nicksmal/$ver/$(echo $nicksmal)_$(echo $ver | tr '.' '_')_updsetup.exe без установки wine
15. viptextil1 23 12.04.19 08:08 Сейчас в теме
Не-не пишите статью, думаю народу будет интересно. А 7z или rar архив не открывает?
16. KiborG85 26 12.04.19 08:47 Сейчас в теме
(15) для статьи это довольно "ускоспециализированный" скрипт... для франчей к примеру. Та и если бы ещё написать его же на PowerShell и предоставить и такой и такой вариант - вот это было бы интересней :)

По поводу распаковки архива - если честно не сильно старался... Сделал несколько попыток и отложил это на потом. Мне сперва было актуально информирование сотрудников. Осталось некое чувство не завершённости, теперь можно будет заняться и распаковкой. :)
17. viptextil1 23 15.04.19 09:59 Сейчас в теме
(16) Спасибо. если нужен каталог скрипта, лучше писать так:
SCR_DIR=$(dirname "$(readlink -e "$0")")
Оставьте свое сообщение