как удалить символ: ^M
tr -d '\r'
надо было в таблицу алиасов вставить данные, в одном из полей которых два адреса - в результате появилась такая мешанина слэшей, кавычек и пр...
cat addr | xargs -p -I {} mysql -h server database -ppassword -e
'insert into alias(kartid,addr,goto,state,usercreate) values(1111,"{}",'\'mail@address,"{}"\'',1,"user");'
sed 's/;[[:space:]]*/;/g' - для удаления из cvs файла обрамляющих пробелов (хрен знает, откуда они берутся в выводе из mysql
дано freebsd 12.4, samba4, родной syslog
и вчера вот пригорело - когда решил вытащить логи самбы из общего /var/log/messages
для начала - man smb.conf советует параметры syslog и syslog only
а потом случайно натыкаюсь на команду testparm и ....
обе эти опции DEPRECATED! ска....
ну вот как так то? но при этом часть этих параметров работает, о чем чуть ниже...
к сожалению, поиск не дал много информации, а еще вернее - не дал ничего, поэтому пришлось решать задачу методом научного тыка - в чем помог запуск syslogd -Fd - с выводом отладочных сообщений в консоль
1. сам syslogd не умеет создавать файлы - создаем руками
2. syslog.conf
!smbd
*.* /var/log/samba/smbd.log
!nmbd
*.* /var/log/samba/nmbd.log
но при этом для файла /var/log/messages надо добавить в перечисленные там параметры -nmbd;-smbd - в результате строка выглядит как-то так:
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err;-nmbd;-smbd /var/log/messages
при этом более в /var/log/messages более ничего не пишется. ваопче!
но вот добавление !-nmbd,smbd первой строкой убирает вывод самбы и из консоли, и из messages
и да, сама самба при этом все равно пишет логи в /var/log/samba4/ ... и как-то не реагирует на параметр log file (кстати, непонятно, можно ли его поставить в null) - до тех пор, пока не удалил всю папку. чуть позже перезапущу и посмотрю, не создается ли это папка заново.
так вот, надо либо тот самый depricated параметр syslog only = true, либо log file = ''
полезные ссылки - https://softpanorama.org/Logs/Syslog/syslog_configuration_debugging.shtml
Так, для себя
передача нескольких параметров через xargs
cat users_maildir_size | xargs -n 2 sh -c 'echo "$0" `expr \( "$1" + 50000 \) / 1000`' > user_quota
где users_maildir_size представляют из себя набор строк из двух слов, разделенных пробелом - имени пользователя и размером его почтовой директории
затем мы передаем через xargs два параметра, рассчитываем (там косяк был в том, что не проставили квоты нескольким пользователям, поэтому пришлось ограничивать, исходя из текущей загрузки) и выводим в файл
все работает, параметры передаются.
к сожалению, никакие игры со всеми видами кавычек, экранирования и пр. для передачи параметров в mysql к результатам не привели :(
cat user_quota | xargs -I {} -n 2 sh -c 'mysql -h server database -ppass -Be "select quota from mailbox where addr like '{$1}@mail%';"'
подобная конструкция НЕ РАБОТАЕТ!!!!
пришлось сформировать файл, содержащий все команды для mysql (для каждого пользователя)
cat mysql_commandы | xargs -I {} sh -c 'mysql -h server database -ppass -e "{}"'
и при этом все равно экранировать в файле апострофы обратными слешами
select addr,quota from mailbox where addr like \'ivanova@mail%\' and quota=0;
забавно, что без экранирования при выполнении xargs -t апострофы показываются в передаче в mysql, но, видимо, теряются по дороге, потому как сама команда при этом не выполняется :)
а вот такая конструкция (пусть и с одной переменной) работает
cat mail_addr2del | xargs -I {} mysql -h server database -ppass -e 'update mailbox set state=-1 where addr like "{}" ; '
Увидел заметку о новом фреймворке управления для jail с поддержкой vnet и решил попробовать. ezjail не обновлялся с 2018 года, vnet не поддерживает, а тут новый и молодежный bastillie. поставил, пробую.
к сожалению, с vnet работает только через организацию бриджа на внешней сетевухе, что для меня не удобно, да и требует покупки дополнительных адресов у хостера. то есть для моей схемы надо большую часть работы делать руками. то есть можно оставить и ezjail - там хоть файлы для тюрем находятся в стандартных местах :)
из забавного - поднял две тюрьмы, создал по epair и кинул по одному концу в каждую. друг-друга видят, пингуют, но при попытке свзаться с внешним миром - полная тишина на внешнем интерфейсе. понятно, что без nat мир не ответит, но ведь надо, что бы пакет туда попал. и так, и этак прыгал, и ничего - не появляется на внешнем интерфейсе пакетов из тюрем. зачем то поднял nat - и случилось чудо - пакеты пошли. то есть сама фряха не пускала пакеты наружу????
# bhyvectl --destroy --vm=
ps. попытка воспользоваться системой управления vm-bhyve успехом не увенчалось :)
пришлось поменять значение /apps/panel/toplevels/top_panel/monitor - на 1
и соотвественно тоже для нижней панели