LINUX.ORG.RU

Избранные сообщения dober

PeerTube 2.1 — свободная децентрализованная система видеовещания

Новости — Open Source
PeerTube 2.1 — свободная децентрализованная система видеовещания
Группа Open Source

12 февраля состоялся релиз системы децентрализованного видеовещания PeerTube 2.1, развиваемой как альтернатива централизованным платформам (таким как YouTube, Vimeo), работающая по принципу «peer-to-peer» — контент хранится непосредственно на машинах пользователей. Исходный код проекта разрабатывается на условиях лицензии AGPLv3.

( читать дальше... )

В настоящее время в федеративной сети видеовещания PeerTube насчитываются около 300 серверов, основанных и поддерживаемых добровольцами.

>>> Обсуждение на OpenNET

>>> Обсуждение на HN

>>> Обсуждение на Reddit

>>> Подробности

 ,

Zhbert
()

python3, что лучше — 1000 раз if или 2 раза перебор range?

Форум — Development

1 вариант:

#!/usr/bin/python3
aa=True
for i in range(100000):
    a=i
    if aa:
        zz=i

2 вариант:

#!/usr/bin/python3
aa=True
for i in range(100000):
    a=i

if aa:
    for i in range(100000):
        zz=i

Что лучше? При условии, что в реальном скрипте не range, а список из 1-300 элементов.

По тестам time быстрее первый вариант, но хотелось бы получить комментарии от знающих ребят и в целом советы, если можно, как оценивать перфоманс тех или иных решений на языке python3.

 

iljuase
()

Готовый сценарий, вымученный с сообществом ЛОРа

Форум — Development

root@PostgreSQL:/home/maintainer# cat /root/backup.sh
#!/bin/bash

FILENAME='/root/psql_dblist'
PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/Backup'
SUFFIX=''

if [[ 'dayly' = $1 ]]
then
    SUFFIX='dayly_'$(date +%u)'_'$(date +%H)
    #echo $SUFFIX
    #echo Ok
fi

if [[ 'monthly' = $1 ]]
then
    SUFFIX='monthly_'$(date +%b)'_'$(date +%H)
fi

if [[ 'hot' = $1 ]]
then
    SUFFIX='hot_'$(date +%Y-%b-%d-%H%M)
fi

if [[ $SUFFIX = '' ]]
then
    echo 'Type monthly, dayly or hot as parametr'
    exit
fi

#DBLIST=$(psql -U $USERNAME -p $PORT -l | awk '/psql/ { print $1 }')
DBLIST=$(psql -U $USERNAME -p $PORT -l | q -d'|' "select c1 from - where c1 <> '' and c2 <> '' and c1 not like 'template%' limit 1,10000")

echo "$DBLIST" > $FILENAME

cat ${FILENAME} | while read DBNAME;
do
    mkdir -p ${ARCHIVEDIR}'/'${DBNAME};
    pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$SUFFIX'.dump.gz';
    #pg_dump -d $DBNAME -h ${SERVERNAME} -p $PORT -U ${USERNAME} -w | gzip > ${ARCHIVEDIR}'/'${DBNAME}'/'${DBNAME}'_'$(date +%Y-%b-%d-%H%M)'.dump.gz';
done

 , ,

Shulman
()

Состоялся релиз Miller 5.3.0

Новости — Open Source
Группа Open Source

Miller, подобие awk, sed, cut, join, и sort для индексированных по имени данных, таких как CSV и табличный JSON, теперь версии 5.3.0.

( Читать дальше )

>>> Скачать

 , , , miller,

saahriktu
()

синхронизировать директорию, но вместо файлов сделать символичкские ссылки и имена сделать нижнем регистре

Форум — Admin

есть директория 0/ такого содержания

0/Missions/ 0/Missions/Gentoo.txt 0/Common/ 0/Expansion/ 0/итд
получаемая так /opt/steam/steamcmd/steamcmd.sh +login user pass +@sSteamCmdForcePlatformType windows +app_update "33930" validate +quit

хочу найти решение, чтобы директории скопировались, а на файлы создались символические ссылки, и чтобы файлы и директории 1/ были в нижнем регистре

1/missions/ 1/missions/gentoo.txt 1/common/ 1/expansion/ 1/итд
и чтобы все это синхронизировалось, подскажите пожалуйста

вот до чего дошло

#!/bin/bash

###source /etc/conf.d/a2oa-server

###SERVERPATH=/opt/a2oa-server/

###ARMA2STEAMPATH=/opt/steam/arma2/
###ARMA2OASTEAMPATH=/opt/steam/arma2oa/

find -L "${SERVERPATH}" -type l -delete

cd "${ARMA2STEAMPATH}"

for DIR in $(find ./ -type d); do
 if [ ! -d "${SERVERPATH}${DIR,,}" ]; then
  mkdir "${SERVERPATH}${DIR,,}"
 fi
done

for FILE in $(find ./ -type f); do

 if [ ! -f "${SERVERPATH}${FILE,,}" ]; then
  ln -s "${ARMA2STEAMPATH}${FILE}" "${SERVERPATH}${FILE,,}"
 fi
done

cd "${ARMA2OASTEAMPATH}"

for DIR in $(find ./ -type d); do
 if [ ! -d "${SERVERPATH}${DIR,,}" ]; then
  mkdir "${SERVERPATH}${DIR,,}"
 fi
done

for FILE in $(find ./ -type f); do

 if [ ! -f "${SERVERPATH}${FILE,,}" ]; then
  ln -s "${ARMA2OASTEAMPATH}${FILE}" "${SERVERPATH}${FILE,,}"
 fi
done

exit 0

 , ,

Deleted
()

Ansible переменные

Форум — Admin

Здравствуйте, подскажите пожалуйста как в конфиге test.yml можно объявить переменные которые я ввожу извне.

Например, мне надо при запуске конфига test.yml добавить имя пользователя которое будет использоваться не один раз. Но задавать это имя в конфиге не верно т.к. при новом запуске плейбука, будет использоваться уже совсем другая переменная.

Например:

- name: Install nvm shell: > curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash sudo: yes sudo_user: user1

В строке (sudo_user:) при новом запуске плэйбука я хочу вводить уже новое имя вместо user1.

Спасибо.

 

binbo89
()

Как вытащить значение

Форум — General

Добрый вечересть скрипт, который запускаеться с ключем --ip=*.*.*.*(где *.*.*.* Ip адресс) и есть условие в скрипте

 
if [ "$1" = "--ip=*.*.*.*" ];
then
...

Как можно передать значение IP адресса в условие. Спасибо.

 ,

tamam
()

Too many open

Форум — Admin

NGINX в логах пишет

socket() failed (24: Too many open files) while connecting to upstream


Хотя
ulimit -n
65535


Тестирую так: открываю 400 http конектов на nginx
lsof -n | wc -l
20344


Хз что ему ещё надо, стоит ли ещё увеличивать или не в этом дело?

 , , ,

gobot
()

Python для админа

Форум — Admin

Решил вкатиться в python и начать с книги A byte of python. Читаю, вникаю, вроде бы все понятно, но потом застрял на главе посвященной ООП. Мой текущий уровень программирования - написание скриптов автоматизации на баше.

Стоит ли мне напрягаться с освоением ООП на данный момент? Пока мне бы хотелось просто освоить питон для решения админских задач. Ну и вообще нужно ли знание ООП админу или девопсу?

 ,

N-N
()

Скрипт на bash - вложенный цикл

Форум — General

Задача проста.

В папке есть ряд каталогов c именем FolderX, X меняется от 1 до 22. В каждой папке Name есть 3 подпапки с именем вида varY, y меняется от 1 до 3. И в каждой папке Var содержится файл File. Нужно создать копию этого файла с именем FileX_Y и переместить в каталог Filesall, который будет находиться там же, где и папки FolderX, в условнокорневом каталоге. Есть скрипт, написанный «в лоб».

#!/bin/bash

mkdir "filesall"

outer=1

for (( i=1; i<=22; i++ ))
do
cd "folder$i"
pwd
inner=1
	for j in 1 2 3
	do

	cd "var$j"
	pwd
	cp file.file file${i}_${j}.file
	echo "file${i}_${j}"
	mv file${i}_${j}.file ../../filesall/

	cd ../
	let "inner+=1"

	done

cd ../
pwd

let "outer+=1"

done

Не работает. Копирует файл из Var1 первой папки Folder1 под разными именами.

Есть второй. По сути, делает тоже, но написан по-другому.

#!/bin/bash


for j in 1 2 3
do
mkdir "filelsall"
cd "filesall"
pwd

for (( i=1; i<=22; i++ )) 
do

cp "../folder$i/var$j/file.file" "file$i_$j.file"

done
cd ..
pwd

done

 ,

cyplenok
()

bash-скрипт на заполнение файла рандомными символами

Форум — General

Написал скрипт, который создает файл, заполняет его рандомными символами, после чего ищет слова с нужной буквой и записывает их в другой файл:

 #!/bin/bash
strings /dev/urandom | head -n2700000 | tr '\n' ' ' >> bgn.txt | grep -oE '\w*a\w*' bgn.txt | tr '\n' ' ' > fnh.txt 

Файл заполняется не только буквами, но и цифрами, различными символами (/!@#$%^&*_). При поиске нужных слов с данной буквой, в файл записываются «слова» по типу sA_n6, но без символов /!@#$%^&* . Почему?

Суть вопроса такова: как мне записывать в файл только англ. буквы с пробелами? Чтобы получались слова (рандомный набор букв некоторой длины, с двух сторон разделенный пробелами). Я пробовал так

tr -cd 'a-zA-Z'
, но буквы иду сплошняком, т.е. без пробелов.

 ,

newbieLX
()

Ansible задача

Форум — Admin
  1. Есть таск, который не делает корректно создание команды внутри файла.
    - name: TASK1
      lineinfile: 'dest=/etc/task1.txt line=""iptables -t nat -A POSTROUTING -s 10.0.{variable}.0/22 -j SNAT --to-source {{ item.value }}""'
      with_dict: ""{{ ansible_local.ip_addresses }}""
    
    Результат должен выглядеть таким образом
    iptables -t nat -A POSTROUTING -s 10.0.0.0/22 -j SNAT --to-source 1.1.1.1
    iptables -t nat -A POSTROUTING -s 10.0.4.0/22 -j SNAT --to-source 1.1.2.1
    iptables -t nat -A POSTROUTING -s 10.0.8.0/22 -j SNAT --to-source 1.1.3.1
    
    IP адрес вставляется при каждой итерации, а номера итерации, к примеру 0,4,8 вместо {variable} - нет. Каким образом можно создать какой-то пул переменных и загружать в зависимости от номера итерации?
  2. Вставлять только четные числа внутри файлов, или только не четные в зависимости от итерации. Например, если проходит операция с первым айпи адресом, то вставляет 0 и 2, если доп. айпи, то 3 и 4 и т.д.

 , , ,

NoHerohere
()

Безопасность на десктопе

Форум — Security

Здравствуйте. Используете ли вы на десктопе дополнительные средства защиты системы? Например fail2ban, настройка iptables/ufw, snort, антивирус . Если да, то какие и почему/для чего?

Есть ли вообще смысл в подобных вещах на пк с популярным дистром(Debian, Fedora, Ubuntu, Arch) и стандартными DE, ядром, конфигами(Debian+LXDE, Xubuntu)?

По левым ссылкам вроде не хожу, в браузере стоят noScript, uBlock. Пакетов откуда попало не ставлю. Но в безопасности почти не шарю, поэтому и боюсь вредоносного ПО, кражи криптовалюты персональных данных.

 , , , ,

misterzsm
()

остановить postgresql сервер

Форум — Development

есть postgresql сервер, есть куча коннектов к нему от приложений с insert в одну таблицу в какой-то момент мы сообщаем приложениям что insert больше делать не нужно, но это сообщение может запоздать и кто-то все же может сделать insert. можно заставить приложения перед insert проходить через некий глобальный mutex но это не вариант. я сейчас делаю lock table после чего никакой insert не пройдет и дальше нужно либо дергать какой-то скрипт с iptables закрывающий порт либо стопать сервер (боюсь что при стопе lock отпустится раньше чем возможный залоченный insert и insert успеет отработать) либо скажем менять на лету порт или какое-то свойство в сервере. как бы это сделали вы?

 

quester
()

Перенос работающей системы в вм

Форум — Admin

Есть ПК с действующей системой (Debian Jessie). Нужно её полностью перенести в виртуальную машину (KVM). Вариант с dd и подключением к вм готового образа - не очень удобен т.к система занимает ничтожно малую часть на своём диске, а dd сделает образ с полным объёмом диска. Что можно сделать?

P.S Снести систему и поставить заново в вм - не вариант.

 ,

FluffyPillow
()

массовое выборочное удаление файлов

Форум — Admin

Здравствуйте! Требуется удалить старые письма в каталоге постфикса, но не все, а от определённого адресата (сервисный). Написал скрипт с поиском нужного текста и поиск по дате:

find `grep -lir '<eml@server.ru>' $findcat` -mtime +30 -exec cp -p '{}' $targetcat \;

После отработки grep, find выдаёт сообщение, что слишком много строк, и он искать не может. На тестовых каталогах с небольшим количеством файлов отрабатывает, а на боевом не хочет. Как обойти такое ограничение?

 , , ,

danver
()

Docker: Service discovery

Форум — Admin

Всем привет!

Вопрос, скорее теоретический: а как у вас решен вопрос Service discovery?

Я как-то жил в парадигме что а) каждый микросервис использует только один свой порт и этот порт мне заранее известен и б) с версии 1.12 все что мне нужно для организации кластера и управления им это только сам докер. Но мне пришла задача с такими вводными: сервисы должны подниматься со случайным портом; в урле не должно быть порта; нужны чеки сервисов. Одним словом: может ли docker иметь функционал consul'а? Спешный гуглеж привел меня к использованию собственно consul, consul template и Registrator. Это все модно и молодежно, но не хочется разводить зоопарк из разных продуктов. И вот хочу уточнить - может уже кто-то такое решал?

 ,

gadzira
()

Проблемы пробелов в скрипте bash

Форум — Admin

Все добрый день.

Пытаюсь написать скрипт типа:

#!/bin/bash
FILE1='первый файл'
DIR1='откуда'
DIR2='куда'
cp $DIR1/$FILE1 $DIR2/
В итоге
cp: не удалось выполнить stat для 'откуда/первый': Нет такого файла или каталога
cp: не удалось выполнить stat для 'файл',: Нет такого файла или каталога

Без кавычек с «\ » тоже самое. Как правильно-то тогда?

 , ,

mfhunruh
()

iptables и несколько шлюзов

Форум — Admin

Ситуация следующая, есть два (IP1, IP2) шлюза в инет. И есть железка (IP3) подключенная к инету через IP2.

Задача: подключаться через IP1 к этой железке (IP3), по телнету и отправлять через него же пакеты обратно. У железки шлюз по умолчанию IP2, который менять нельзя.

С IP1 проброшен порт на IP2, с него на железку (IP3). Из инета пакеты доходят до IP3 через IP1 а потом IP2, но обратно железка отвечает через шлюз IP2.

Вопрос: какое правило написать в iptables на IP2 чтоб пакеты он отправлял с IP3:5000 не в инет, а на шлюз IP1?

 , ,

TheZ
()

Найти файлы где 2 пробела.

Форум — Development

Есть много файлов сорцов.
В некоторых остался старый синкасис: 2 пробела (сейчас 4).
Нужно пройтись скриптом и выдать список файлов, где подряд пробелов точное количество: 2, 6, 10 ....

Из того что удалось нагуглить искало не менее 2 пробелов, то есть реагировало в том числе и на файлы где отступ 4 пробела.

Помогите написать скрипт.

Заменять буду из IDE.

 , ,

ymuv
()