Python tools
Install python 3.9 на CentOS7:
yum update
yum install openssl-devel zlib-devel libffi-devel gcc -y
yum install bison byacc cscope ctags cvs diffstat doxygen flex gcc gcc-c++ gcc-gfortran gettext git indent intltool libtool patch patchutils rcs redhat-rpm-config rpm-build subversion swig systemtap -y
yum groupinstall "Development Tools" -y
shutdown -r now
cd /usr/src
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
tar xzf Python-3.9.9.tgz
cd Python-3.9.9
yum install devtoolset-8-gcc devtoolset-8-gcc-c++
scl enable devtoolset-8 -- bash
./configure --prefix=/usr --enable-optimizations
make
make install
rm /usr/src/Python-3.9.9.tgz
pip3.9 install --upgrade pipПосле перезагрузки версия gcc слетает, впринципе, он нужен только для установки python. Проверить версию
gcc -v
Апгрейд пип
python3.9 -m pip install --upgrade pip
pip3.9 --version
Sometimes you have to reinstall pip yourself (it happens for example when you can't install modul netmiko because of stupid error you don't know, as fast resolve it is good, one time it helps me :)):
# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# python3 get-pip.py --force-reinstall
# pip install netmiko# echo "export FIRE_U_U="admin"" >> ~/.bashrc && source ~/.bashrc
# echo "export FIRE_P_U="Pasw00rD"" >> ~/.bashrc && source ~/.bashrc
# echo $FIRE_U_Uor
# envHOW USE IT IN PYTHON CODE:
import os
U_user = os.getenv('FIRE_U_U')
U_password = os.getenv('FIRE_P_U')Описание: создадим службу, которая будет запускать скрипт python по расписанию (альтернатива cron)
Дано:
- сркипт /var/refresh_spare_srx_config.py
- скрипт запускаемый chmod +x
Создаем юнит, который будет запускать скрипт
vim /usr/lib/systemd/system/refresh_srx.serviceСодержание:
[Unit]
Description=Refresh combat config of spare SRX
[Service]
Type=simple
ExecStart=/usr/local/bin/python3.7 '/var/refresh_spare_srx_config.py'
[Install]
WantedBy=multi-user.targetСоздание таймера
vim /usr/lib/systemd/system/refresh_config.timerСодержание:
[Unit]
Description=Execute every day at 04:00
[Timer]
OnCalendar=*-*-* 04:00:00
Unit=refresh_srx.service
[Install]
WantedBy=multi-user.targetАктивируем загрузку и запустим сервис:
systemctl enable refresh_config.timer
systemctl start refresh_config.timerДля проверки автозапуска:
systemctl is-enabled refresh_config.timer
enabledДля проверки запуска таймера:
systemctl is-active refresh_config.timer
activeЕсли необходимо, сервис можно запустить вручную в любое время:
systemctl start refresh_configЕсли были внесены какие-то изменение в таймер, например время выполнения, то необходимо произвести обновление сервиса:
systemctl daemon-reloadПросмотр таймеров в системе
systemctl list-timers refresh_config*RUN it on 3-00 AM:
# crontab -e
00 03 * * * /usr/local/bin/python3.7 /home/parse_example.py