Archives 2020

#IT/

Ajouter un service à chkconfig

Si en tentant de configurer le démarrage automatique d'un de nos scripts d'init avec chkconfig, on se prend le message suivant :

# chkconfig murmur on
Le service murmur ne prend pas en charge chkconfig

Pas de panique ! Cela veut juste dire que dans le script d'init, on a oublié de mettre une ligne de commentaire au début du fichier, contenant :

# chkconfig:   

Par exemple, pour murmur, si on ajoute la ligne :

# chkconfig: 2345 55 25

Et qu'on relance le chkconfig on, plus d'erreur. Et on peut vérifier que le service sera bien lancé au démarrage des différents runlevel avec la commande chkconfig --list :

# chkconfig --list
murmur          0:arrêt 1:arrêt 2:marche    3:marche    4:marche    5:marche    6:arrêt
netconsole      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt
network 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
29 janvier 2020 Aucun commentaire

#IT/

Logs textuels avec systemd

Ayant récemment tenté la migration de Centos 6.5 vers 7.2 via le script d'upgrade redhat-upgrade-tool (celui qu'il est déconseillé d'utiliser en production sur leur wiki, oui, oui), je me suis retrouvée confrontée au problème des logs binaires de systemd. Ce qui n'est pas super pratique quand on doit booter son systeme en mode rescue et qu'on ne dispose pas de tous les outils qu'on voudrait... (Car oui, l'upgrade s'est globalement bien passée, mais il y a eu plusieurs démarrage en mode rescue tout de même).

Mais en farfouillant sur le net, j'ai découvert l'existence d'un package magnifigique, syslog-ng ! Que fait-il ? Tout simplement, il permet de revenir à des logs sous forme de texte là ou systemd les transforme en binaire. Fini les journalctl, re bonjour les grep et tail !

En plus, l'installation est hyper simple. On installe le paquet :

# yum install syslog-ng

Puis un petit edit de /etc/systemd/journald.conf pour y désactiver le storage de logs sous forme binaire :

[Journal]
Storage=none

On démarre et active le service, et enjoy !

# systemctl enable syslog-ng.service
# systemctl start syslog-ng.service

Source

29 janvier 2020 Aucun commentaire

#IT/

Alternatives system to switch Firefox

Pour mes tests Selenium, j’ai besoin de pouvoir utiliser une version de Firefox qui ne soit pas la dernière. J’ai donc été confrontée au problème suivant : il y a-t-il une commande simple comme alternatives pour passer d’une installation de Firefox à une autre, comme c’est par exemple possible pour java ? La réponse est oui ! Tout d’abord, on télécharge la version de Firefox qui nous intéresse :

# mkdir -p /opt/firefox
# wget https://ftp.mozilla.org/pub/firefox/releases/46.0.1/firefox-46.0.1.linux-x86_64.sdk.tar.bz2
# tar -xvf firefox-46.0.1.linux-x86_64.sdk.tar.bz2
# mv firefox-sdk/ firefox-46.0.1

Ensuite, on configure la version par défaut et la version custom dans alternatives :

# alternatives --install /usr/local/bin/firefox firefox /usr/bin/firefox 10
# alternatives --install /usr/local/bin/firefox firefox /opt/firefox/firefox-46.0.1/bin/firefox 20
# alternatives --config firefox

There are 2 programs which provide 'firefox'.

Selection Command
-----------------------------------------------
1 /usr/bin/firefox
+ 2 /opt/firefox/firefox-46.0.1/bin/firefox

Enter to keep the current selection[+], or type selection number:

Si pour une raison quelconque, on veut retourner à l’état antérieur, il suffira de supprimer les installations de alternatives :

# /usr/sbin/alternatives --remove firefox /opt/firefox/firefox
# /usr/sbin/alternatives --remove firefox /usr/bin/firefox

Source

29 janvier 2020 Aucun commentaire

#IT/

Script d'init pour Murmur

Un petit script à mettre dans init.d pour pouvoir lancer Murmur comme un service :
### BEGIN INIT INFO
# Provides:          murmur
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Short description: Start/Stop Murmur, the voice chat server
### END INIT INFO

# chkconfig: 2345 55 25

pidfile=/var/run/murmur/murmur.pid
pid=`/bin/cat /var/run/murmur/murmur.pid`

case "$1" in
    start)
        if [ ! "$pid" ]; then
            /bin/echo "Starting Murmur ... "
            /opt/mumble/murmur.x86
        fi
        exit 0
    ;;
    stop)
        if [ "$pid" ]; then
            /bin/echo "Shutting down Murmur ... "
            /bin/kill -9 $pid
            :> $pidfile 
        fi
        exit 0
    ;;
    status)
        /bin/echo -n "Murmur is "
        if [ "$pid" ]; then
            /bin/echo "running."
            exit 0
        else
            /bin/echo "not running!"
            exit 1
        fi
    ;;
    restart|reload|force-reload)
        $0 stop
        $0 start
    ;;
    *)
        echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" >&2
        exit 1
    ;;
esac
29 janvier 2020 Aucun commentaire

#IT/

Script Pandoc de conversion Markdown vers PDF

Script pour convertir un fichier Markdown en fichier PDF, avec table des matières

#!/bin/bash
if [ $# -lt 2 ];
then
        echo "Syntax: $0  "
        exit -1
fi
markdown="$1"
pdf="$2"

pandoc ${markdown} --variable=author:"Aline" --variable=date:"$(date +%d-%m-%Y)" -N --toc -o ${pdf}

Avec le template Latex par defaut default.latex modifié :

%\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
\documentclass[12pt]{$documentclass$}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\usepackage{geometry}

%Aline:marges
\geometry{verbose,a4paper,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.2cm,rmargin=2.2cm}
%aline :style pour que le code soit encadre et colore
%
% Define new command 'verbatim" which is used to hold the code of any language.
%
\usepackage{fancyvrb,fancybox,calc}
\usepackage[svgnames]{xcolor}
\usepackage[style=1,leftmargin=0pt,rightmargin=0pt]{mdframed}
%\definecolor{verb_border}{rgb}{0.7,0.7,1}
%\definecolor{verb_bg}{rgb}{.95,.96,.97}
\let\oldverbatim=\verbatim
\let\oldendverbatim=\endverbatim
\renewenvironment{verbatim}[1][test]
{
   \begin{mdframed}[linewidth=2,backgroundcolor=gray!10,linecolor=gray, 
fontcolor=black]\fontsize{10}{10}\sffamily\selectfont
   \begin{oldverbatim}
}
{
  \end{oldverbatim}
  \end{mdframed}
}
%fin aline

% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[utf8]{inputenc}
$if(euro)$
  \usepackage{eurosym}
$endif$
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
    \usepackage{xltxtra,xunicode}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \newcommand{\euro}{€}
$if(mainfont)$
    \setmainfont{$mainfont$}
$endif$
$if(sansfont)$
    \setsansfont{$sansfont$}
$endif$
$if(monofont)$
    \setmonofont[Mapping=tex-ansi]{$monofont$}
$endif$
$if(mathfont)$
    \setmathfont(Digits,Latin,Greek){$mathfont$}
$endif$
\fi

% use microtype if available
\IfFileExists{microtype.sty}{\usepackage{microtype}}{}
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
$if(natbib)$
\usepackage{natbib}

\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
\usepackage{biblatex}

$if(biblio-files)$
\bibliography{$biblio-files$}
$endif$
$endif$

$if(listings)$
\usepackage{listings}
$endif$

$if(lhs)$
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$

$if(highlighting-macros)$
$highlighting-macros$
$endif$

$if(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$

$if(tables)$
\usepackage{longtable,booktabs}
$endif$

$if(graphics)$
\usepackage{graphicx}

% Redefine \includegraphics so that, unless explicit options are
% given, the image width will not exceed the width of the page.
% Images get their normal width if they fit onto the page, but
% are scaled down if they would overflow the margins.
\makeatletter
\def\ScaleIfNeeded{%
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}

\makeatother
\let\Oldincludegraphics\includegraphics
{%
 \catcode`\@=11\relax%
 \gdef\includegraphics{\@ifnextchar[{\Oldincludegraphics}{\Oldincludegraphics[width=\ScaleIfNeeded]}}%
}%
$endif$

\ifxetex
  \usepackage[setpagesize=false, % page size defined by xetex
              unicode=false, % unicode breaks when used with xetex
              xetex]{hyperref}
\else
  \usepackage[unicode=true]{hyperref}
\fi
\hypersetup{breaklinks=true,
            bookmarks=true,
            pdfauthor={$author-meta$},
            pdftitle={$title-meta$},
            colorlinks=true,
            citecolor=$if(citecolor)$$citecolor$$else$blue$endif$,
            urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
            linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
            pdfborder={0 0 0}}
\urlstyle{same}  % don't use monospace font for urls
$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
\renewcommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
$if(strikeout)$
\usepackage[normalem]{ulem}
% avoid problems with \sout in headers with hyperref:
\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
$endif$

\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em}  % prevent overfull lines

$if(numbersections)$
\setcounter{secnumdepth}{5}
$else$

\setcounter{secnumdepth}{0}
$endif$

$if(verbatim-in-note)$
\VerbatimFootnotes % allows verbatim text in footnotes
$endif$

$if(lang)$
\ifxetex
  \usepackage{polyglossia}
  \setmainlanguage{$mainlang$}
\else
  \usepackage[$lang$]{babel}

\fi

$endif$

$if(title)$
\title{$title$}
$endif$

$if(subtitle)$
\subtitle{$subtitle$}
$endif$

\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}
$for(header-includes)$
$header-includes$
$endfor$

​\begin{document}
$if(title)$
\maketitle
$endif$

$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$

​$for(include-before)$
$include-before$
$endfor$

​$if(toc)$
{
\hypersetup{linkcolor=black}
\setcounter{tocdepth}{$toc-depth$}
\clearpage
\tableofcontents
\clearpage
}
$endif$

$body$
$if(natbib)$
$if(biblio-files)$
$if(biblio-title)$
$if(book-class)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
\bibliography{$biblio-files$}
$endif$
$endif$
$if(biblatex)$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
$endif$

$for(include-after)$
$include-after$
$endfor$

\end{document}
29 janvier 2020 Aucun commentaire