planet

Small Server Tips

mm-barabba - Dom, 18/09/2016 - 00:43

Alcuni trucchi che mi aiutano a mantenere aggiornato il mio piccolo server.

  • logwatch – una mail per sapere come va
  • apticron – una notifica per non cercare aggiornamenti quando non ce ne sono
  • debian-goodies – piccole utility

A volte tocca arrangiarsi.

Di seguito vediamo come utilizzarli

LOGWATCH

Molte applicazioni creano dei log, ma spesso questi non vengono controllati, in questo caso logwatch invierà una mail con quanto ci interessa con un report dei log che desideriamo.

L’installazione è semplice

#aptitude install logwatch

Il file di configurazione si trova qui :

/usr/share/logwatch/default.conf/logwatch.conf

Per personalizzarlo basta darci una letta per capire dove intervenire, ma ci sono alcuni punti che vi consiglio di verificare.

A chi inviare la mail, di default

MailTo = root

Lo spazio di tempo da prendere in osservazione

Range = yesterday

Quanto deve essere dettagliato il report (è possibile usare anche i numeri)

# Low = 0
# Med = 5
# High = 10
Detail = Low

 

I log dei servizi che vi interessano, di default All, altrimenti specificate quelli desiderati.

Service = All

Dopo l’installazione si dovrebbe eseguire giornalmente con cron ma è possibile anche avviarlo manualmente

$man logwatch logwatch  [--detail  level  ]  [--logfile  log-file-group ] [--service service-name ] [--mailto address ] [--archives] [--range range ] [--debug       level ] [--filename file-name ] [--logdir directory ] [--hostlimit hosts ] [--hostname hostname ] [--html_wrap number of characters  ] [--host‐ format  host  based  options  ]  [--output  output-type  ]  [--format  report  format  ] [--encode  encoding  to  use ] [--numeric] [--version] [--help|--usage]

Esempio:

#logwatch --detail Low --mailto root --service sshd --range today

Ecco il report

############# Logwatch 7.4.3 (04/27/16) ####################         Processing Initiated: Sun Sep 18 00:06:12 2016         Date Range Processed: yesterday                               ( 2016-Sep-17 )                               Period is day.         Detail Level of Output: 0         Type of Output/Format: mail / text         Logfiles for Host: sukaserver ################################################################## --------------------- SSHD Begin ------------------------ Users logging in through sshd:     pippero:        192.168.3.101: 1 time **Unmatched Entries** Connection reset by 192.168.3.101 port 2130 [preauth] : 1 time(s) ---------------------- SSHD End ------------------------- ###################### Logwatch End ######################### APTICRON

La macchina in oggetto fa abilmente girare una debian stable, gli aggiornamenti non sono frequenti e per risparmiarmi di verificarli ogni giorno grazie ad apticron mi arriva una mail per avvisarmi degli upgrade.

I pacchetti sono già stati scaricati e non mi resta che avviare l’aggiornamento.

Il file di configurazione si trova in  /etc/apticron/apticron.conf  se volete modificarlo.

Ad esempio oggi che debian stable è passata da 8.5 a 8.6 mi è arrivata una notifica di cui riporto solo una parte

apticron report [Sat, 17 Sep 2016 14:38:03 +0200] ======================================================================== apticron has detected that some packages need upgrading on: localhost.localdomain [ 192.168.0.150 ] The following packages are currently pending an upgrade: apache2 2.4.10-10+deb8u7 apache2.2-common 2.4.10-10+deb8u7 apache2-bin 2.4.10-10+deb8u7 apache2-data 2.4.10-10+deb8u7 apache2-mpm-prefork 2.4.10-10+deb8u7 apache2-utils 2.4.10-10+deb8u7 automake 1:1.14.1-4+deb8u1 base-files 8+deb8u6 clamav 0.99.2+dfsg-0+deb8u2 clamav-base 0.99.2+dfsg-0+deb8u2 clamav-daemon 0.99.2+dfsg-0+deb8u2 clamav-freshclam 0.99.2+dfsg-0+deb8u2 clamdscan 0.99.2+dfsg-0+deb8u2 comerr-dev 2.1-1.42.12-2 e2fslibs 1.42.12-2 e2fsprogs 1.42.12-2 file 1:5.22+15-2+deb8u2 gnupg 1.4.18-7+deb8u3 gnupg2 2.0.26-6+deb8u1 gnupg-agent 2.0.26-6+deb8u1 gnupg-curl 1.4.18-7+deb8u3 gpgsm 2.0.26-6+deb8u1 gpgv 1.4.18-7+deb8u3 libaudiofile1 0.3.6-2+deb8u1 libaudiofile-dev 0.3.6-2+deb8u1 libc6 2.19-18+deb8u6 libc6-dbg 2.19-18+deb8u6 libc6-dev 2.19-18+deb8u6 libc6-i686 2.19-18+deb8u6 libc-bin 2.19-18+deb8u6 libc-dev-bin 2.19-18+deb8u6 libclamav7 0.99.2+dfsg-0+deb8u2 libcomerr2 1.42.12-2 libgudev-1.0-0 215-17+deb8u5 libltdl7 2.4.2-1.11+b1 libltdl-dev 2.4.2-1.11+b1 libmagic1 1:5.22+15-2+deb8u2 libnet-ssleay-perl 1.65-1+deb8u1 libpam-systemd 215-17+deb8u5 libpolkit-agent-1-0 0.105-15~deb8u2 libpolkit-backend-1-0 0.105-15~deb8u2 libpolkit-gobject-1-0 0.105-15~deb8u2 libpython2.7 2.7.9-2+deb8u1 libpython2.7-minimal 2.7.9-2+deb8u1 libpython2.7-stdlib 2.7.9-2+deb8u1 libruby2.1 2.1.5-2+deb8u3 libsqlite3-0 3.8.7.1-1+deb8u2 libss2 1.42.12-2 libssl1.0.0 1.0.1t-1+deb8u3 libssl-dev 1.0.1t-1+deb8u3 libsystemd0 215-17+deb8u5 libudev1 215-17+deb8u5 libxml2 2.9.1+dfsg1-5+deb8u3 libxml2-dev 2.9.1+dfsg1-5+deb8u3 libxml2-utils 2.9.1+dfsg1-5+deb8u3 locales 2.19-18+deb8u6 multiarch-support 2.19-18+deb8u6 openssl 1.0.1t-1+deb8u3 policykit-1 0.105-15~deb8u2 python2.7 2.7.9-2+deb8u1 python2.7-minimal 2.7.9-2+deb8u1 python-libxml2 2.9.1+dfsg1-5+deb8u3 ruby2.1 2.1.5-2+deb8u3 scdaemon 2.0.26-6+deb8u1 sendmail-base 8.14.4-8+deb8u1 sendmail-cf 8.14.4-8+deb8u1 systemd 215-17+deb8u5 systemd-sysv 215-17+deb8u5 tzdata 2016f-0+deb8u1 tzdata-java 2016f-0+deb8u1 udev 215-17+deb8u5 wget 1.16-1+deb8u1 ======================================================================== Package Details: Reading changelogs... --- Changes for libtool (libltdl7 libltdl-dev) --- libtool (2.4.2-1.11+b1) jessie; urgency=low, binary-only=yes   * Binary-only non-maintainer upload for i386; no source changes.   * Rebuild with current automake -- amd64/i386 Build Daemon (babin) <buildd-babin@buildd.debian.org>  Tue, 14 Oct 2014 19:21:11 +0200 --- Changes for audiofile (libaudiofile1 libaudiofile-dev) --- audiofile (0.3.6-2+deb8u1) jessie; urgency=high   * Team upload.   * Fix CVE-2015-7747: buffer overflow when changing both sample format and     number of channels. (Closes: #801102) -- James Cowgill <jcowgill@debian.org>  Tue, 14 Jun 2016 16:39:49 +0100 --- Changes for file (file libmagic1) --- file (1:5.22+15-2+deb8u2) stable; urgency=high   * Fix CVE-2015-8865:     Buffer over-write in finfo_open with malformed magic file. -- Christoph Biedl <debian.axhn@manchmal.in-ulm.de>  Mon, 09 May 2016 08:18:53 +0200 --- Changes for apache2 (apache2 apache2.2-common apache2-bin apache2-data apache2-mpm-prefork apache2-utils) --- apache2 (2.4.10-10+deb8u7) jessie; urgency=medium   * Fix installation of /lib/systemd/system/apache2.service.d/forking.conf. -- Julien Cristau <jcristau@debian.org>  Thu, 15 Sep 2016 22:42:19 +0200 apache2 (2.4.10-10+deb8u6) jessie; urgency=medium   * Fix race condition and logical error in init script. Thanks to Thomas     Stangner for the patch. Closes: #822144   * Remove links to manpages.debian.org in default index.html to avoid     broken robots doing a DoS on the site. Closes: #821313   * mod_socache_memcache: Increase idle timeout to 15s to allow keep-alive     connections. Closes: #803035   * mod_proxy_fcgi: Fix wrong behavior with 304 responses. Closes: #827472   * Correct systemd-sysv-generator behavior by customizing some parameters.     This fixes 'systemctl status' returning incorrect results.     Closes: #827444   * mod_proxy_html: Add missing config file mods-available/proxy_html.conf.     This is intentionally not enabled during upgrade, to make it less     likely to break existing setups. It will be enabled by a a2dismod/a2enmod     cycle, though. Closes: #827258 ... ... ... ======================================================================== You can perform the upgrade by issuing the command: apt-get dist-upgrade as root on localhost.localdomain DEBIAN-GOODIES

Questi programmi sono progettati per integrarsi con gli strumenti standard della shell, estendendoli per funzionare sul sistema dei pacchetti Debian.

dgrep - Cerca una espressione regolare in tutti i file nei pacchetti specificati. dglob - Genera un elenco di nomi di pacchetti che corrispondono ad un modello.

Sono inclusi anche i seguenti strumenti poiché sono utili ma non giustificano un proprio pacchetto specifico:

debget - scarica il file .deb di un pacchetto nel database di APT; dpigs - mostra quali pacchetti installati occupano più spazio; debman - visualizza facilmente le pagine man da un pacchetto .deb senza estrarle; debmany - seleziona le pagine man di pacchetti installati e non; checkrestart - aiuta a trovare e riavviare processi che stanno usando versioni vecchie di file aggiornati (come librerie); popbugs - visualizza un elenco personalizzato di bug release-critical basato sui pacchetti in uso sul proprio sistema (usando i dati di popularity-contest); which-pkg-broke - trova quale è il pacchetto che può averne reso un altro difettoso; check-enhancements - trova i pacchetti che migliorano quelli installati.

Il comando che uso maggiormente è checkrestart, sopratutto dopo che ho eseguito degli aggiornamenti.

un esempio:

# checkrestart Found 76 processes using old versions of upgraded files (44 distinct programs) (40 distinct packages) Of these, 25 seem to contain init scripts which can be used to restart them: The following packages seem to have init scripts that could be used to restart them: smartmontools:         1630    /usr/sbin/smartd fetchmail:         21893   /usr/bin/fetchmail udev:         3201    /lib/systemd/systemd-udevd cron:         1622    /usr/sbin/cron cups-browsed:         2523    /usr/sbin/cups-browsed fail2ban:         2979    /usr/bin/fail2ban-server rsyslog:         1627    /usr/sbin/rsyslogd openbsd-inetd:         1626    /usr/sbin/inetd mdadm:         801     /sbin/mdadm redis-server:         1633    /usr/bin/redis-server avahi-daemon:         2138    /usr/sbin/avahi-daemon         2457    /usr/sbin/avahi-daemon openssh-server:         16096   /usr/sbin/sshd         27418   /usr/sbin/sshd         16166   /usr/sbin/sshd         27423   /usr/sbin/sshd         1618    /usr/sbin/sshd ntop:         5089    /usr/sbin/ntop portmap:         1610    /sbin/portmap clamav-daemon:         29153   /usr/sbin/clamd vnstat:         1628    /usr/sbin/vnstatd cups-daemon:         13287   /usr/sbin/cupsd dirmngr:         17943   /usr/bin/dirmngr clamav-freshclam:         1504    /usr/bin/freshclam postfix:         3358    /usr/lib/postfix/qmgr         3332    /usr/lib/postfix/master dbus:         1697    /usr/bin/dbus-daemon mailgraph:         2564    /usr/sbin/mailgraph webmin:         19232   /usr/share/webmin/miniserv.pl at:         1629    /usr/sbin/atd bandwidthd:         2297    /usr/sbin/bandwidthd         2296    /usr/sbin/bandwidthd         2295    /usr/sbin/bandwidthd         2294    /usr/sbin/bandwidthd These are the init scripts: service smartmontools restart service fetchmail restart service udev-finish restart service udev restart service cron restart service cups-browsed restart service fail2ban restart service rsyslog restart service openbsd-inetd restart service mdadm-raid restart service mdadm-waitidle restart service mdadm restart service redis-server restart service avahi-daemon restart service ssh restart service ntop restart service portmap restart service clamav-daemon restart service vnstat restart service cups restart service dirmngr restart service clamav-freshclam restart service postfix restart service dbus restart service mailgraph restart service webmin restart service atd restart service bandwidthd restart These processes do not seem to have an associated init script to restart them: bsdutils:         2656    /usr/bin/logger courier-authlib:         1781    /usr/lib/courier/courier-authlib/authdaemond         1807    /usr/lib/courier/courier-authlib/authdaemond         1806    /usr/lib/courier/courier-authlib/authdaemond         1805    /usr/lib/courier/courier-authlib/authdaemond         1804    /usr/lib/courier/courier-authlib/authdaemond         1803    /usr/lib/courier/courier-authlib/authdaemond         1780    /usr/sbin/courierlogger         1794    /usr/sbin/courierlogger systemd:         21684   /lib/systemd/systemd         21683   /lib/systemd/systemd         1       /lib/systemd/systemd         14476   /lib/systemd/systemd-logind         202     /lib/systemd/systemd-journald vlock:         3616    /usr/sbin/vlock-main consolekit:         3712    /usr/sbin/console-kit-daemon pgld:         2801    /usr/sbin/pgld courier-base:         1795    /usr/sbin/couriertcpd policykit-1:         3786    /usr/lib/policykit-1/polkitd tmux:         16245   /usr/bin/tmux         27451   /usr/bin/tmux         21719   /usr/bin/tmux mysql-server-core-5.5:         2655    /usr/sbin/mysqld bash:         21724   /bin/bash         21759   /bin/bash         27424   /bin/bash         1876    /bin/bash         2808    /bin/bash         21721   /bin/bash         21720   /bin/bash         21723   /bin/bash         27459   /bin/bash         27440   /bin/bash         16197   /bin/bash         16167   /bin/bash mc:         21722   /usr/bin/mc perl-base:         2843    /usr/bin/perl         2627    /usr/bin/perl login:         16178   /bin/su         27433   /bin/su         27452   /bin/su

PS many thanks to skizzhg for debian-goodies e nemo for logwatch

Categorie: planet

transparent conky in KDE/Plasma 5

mm-barabba - Sab, 02/07/2016 - 00:00

Da tempo ho sul desktop qualcosa che mi parla della mia macchina, ma da quando superkaramba è stati rimosso da testing/stretch mi sono dovuto arrangiare.

Il vecchio conky che avevo con file lua no nne voleva sapere di ripartire e allora son partito dal file di base di conky che era funzionate a cui ho apportato le dovute modifiche.

All’inizio son partito mettendo insieme le cose essenziali poi ho lasciato il tuning e il gigiamento (colori,caratteri e grafica) a un dopo che non è mai arrivato.

Non è un granchè ma sicuramente una base da cui poter partire, visto che per mettere le trasparenze ho imprecato un pochetto.

A seguire il file di configurazione

Il file di configurazione io l’ho piazzato nella dir del mio utente all’interno della cartella nascosta .conky e il nome può essere scelto a piacere.

conky.config = {     alignment = 'top_right',     background = false,     border_width = 1,     cpu_avg_samples = 2,     default_color = 'white',     default_outline_color = 'white',     default_shade_color = 'white',     draw_borders = false,     draw_graph_borders = true,     draw_outline = false,     draw_shades = false,     use_xft = true,     font = 'DejaVu Sans Mono:size=7',     gap_x = 25,     gap_y = 120,     minimum_height = 5,     minimum_width = 5,     maximum_width = 260,     use_spacer = yes,     net_avg_samples = 2,     no_buffers = true,     out_to_console = false,     out_to_stderr = false,     extra_newline = false,     double_buffer = true,     own_window = true,     own_window_class = 'Conky',     own_window_type = 'normal',     own_window_colour=black,     own_window_transparent=false,     own_window_hints="undecorated,below,sticky,skip_taskbar,skip_pager",     own_window_argb_visual = true,     own_window_argb_value = 0,     own_window_transparent = true,     stippled_borders = 0,     update_interval = 1.0,     uppercase = false,     use_spacer = 'none',     show_graph_scale = false,     show_graph_range = false } conky.text = [[ $sysname $kernel $hr ${color grey}Uptime:$color $uptime Processore ${color grey}CPU Usage:$color $cpu% ${goto 100}${cpubar 4} ${color grey}Frequency (in MHz):$color $freq core 0:${cpu cpu1}%${color3} ${goto 60}   ${execi 20 sensors | grep Core\ 0 | cut -c18-19}°C core 1:${cpu cpu2}%${color3} ${goto 60}   ${execi 20 sensors | grep Core\ 1 | cut -c18-19}°C core 2:${cpu cpu3}%${color3} ${goto 60}   ${execi 20 sensors | grep Core\ 2 | cut -c18-19}°C core 3:${cpu cpu4}%${color3} ${goto 60}   ${execi 20 sensors | grep Core\ 3 | cut -c18-19}°C ${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes ${color grey}Name              PID   CPU%   MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ${color lightgrey} ${top name 5} ${top pid 4} ${top cpu 4} ${top mem 5} ${color lightgrey} ${top name 6} ${top pid 4} ${top cpu 4} ${top mem 6} ${color lightgrey} ${top name 7} ${top pid 4} ${top cpu 4} ${top mem 7} ${color lightgrey} ${top name 8} ${top pid 4} ${top cpu 4} ${top mem 8} $hr Memoria ${color grey}RAM Usage:$color $mem/$memmax $memperc% ${goto 60}${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax $swapperc% ${goto 60}${swapbar 4} $hr ${color grey}File systems: DISKS     ${diskiograph /dev/sda 18,170 666666 CC3333} /         ${fs_used /}/${fs_size /}   ${goto 160}${fs_bar 6 /} /home     ${fs_used /home}/${fs_size /home} ${goto 160}${fs_bar 6 /media/archivio} /archivio ${fs_used /media/sega}/${fs_size /media/sega} ${goto 160}${fs_bar 6 /media/sega} /backup   ${fs_used /media/mgmerd} / ${fs_size /media/mgmerd} ${goto 160}${fs_bar 6 /media/mgmerd} /data     ${fs_used /media/marcstrunz} / ${fs_size /media/marcstrunz} ${goto 160}${fs_bar 6 /media/marcsrtrunz} $hr TEMP SDA:${goto 50} ${execi 5 hddtemp -n /dev/sda}°C SDF:${goto 50} ${execi 5 hddtemp -n /dev/sdf}°C SDG:${goto 50} ${execi 5 hddtemp -n /dev/sdg}°C Nvidia:${goto 50} ${execi 5 nvidia-settings -q GPUCoreTemp | grep 0.0 | sed -e 's/.*: //'| cut -c 1-2}°C $hr ${color grey}Networking: Local IP : ${addr eth0} Public IP: ${execi 3600 w3m -no-cookie -dump http://checkip.dyndns.org | awk '{print $4}'} Down: ${goto 45}${downspeed eth0}  -  Up: ${goto 145}${upspeed eth0} ${goto 5}Total Down: ${totaldown eth0} ${goto 5}Total Up: ${totalup eth0} $hr ${goto 5}open ports:   ${tcp_portmon 1 65535 count} ${offset 10}URL${goto 220}PORT ${tcp_portmon 1 65535 rip  0}${alignr 1}${tcp_portmon 1 65535 rport  0} ${tcp_portmon 1 65535 rip  1}${alignr 1}${tcp_portmon 1 65535 rport  1} ${tcp_portmon 1 65535 rip  2}${alignr 1}${tcp_portmon 1 65535 rport  2} ${tcp_portmon 1 65535 rip  3}${alignr 1}${tcp_portmon 1 65535 rport  3} ${tcp_portmon 1 65535 rip  4}${alignr 1}${tcp_portmon 1 65535 rport  4} ${tcp_portmon 1 65535 rip  5}${alignr 1}${tcp_portmon 1 65535 rport  5} ]]

 

Per l’esecuzione manuale ho preparato un alias :

alias kconky='conky -c ~/.conky/conkyrc &'

in questo modo lo lancio quando voglio pure quando crasha…..

Categorie: planet

Don’t stop RAI in my Linux bash

mm-barabba - Dom, 26/06/2016 - 23:56

Ultimamente pare che alcuni utenti abbiano problemi nell’usare lo script RaiNix , e come al solito questo avvine in coincidenza con eventi mediatici.

Ma non preoccupatevi, anche se in leggero ritardo vi tengo aggiornati.

Download “RaiNix 1.5.3 (20/06/2016)” RaiNix_1531.txt – Scaricato 798 volte – 18 KB

Un link per avere sempre la situazione sotto controllo nel caso io mi sia appisolato : paolodistefano blog

Scusate la pigrizia, ma quanto segue è preso dal blog in precedenza linkato :

L’uso di RaiNix è molto semplice: prima rinominarlo togliendo l’estenzione .txt e  renderlo eseguibile e poi lanciare lo script  con il comando ./rainix153. Con bash -x rainix  è possibile attivare il debug. Attendere qualche momento e poi parte il flusso. A causa dei vari terminali presenti nelle distro Linux, RaiNix ultima versione fa un check sull’esistenza di XTERM ed anche su gnome-terminal e konsole.  Il primo terminale che viene rilevato verrà poi usato per lanciare il player. Se nessuno di questi è installato viene notificato all’utente. Inoltre, se XTERM è presente, viene controllato che la variabile DISPLAY sia impostata correttamente.

Per funzionare lo script ha bisogno di curl, ffmpeg e come videoplayer almeno uno installato tra ffplay, livestreamer o mpv (quest’ultimo un fork di Mplayer e Mplayer2). La scelta di un player al posto di un altro va fatta seguendo questi criteri:

ffplay è il più conosciuto, s’installa con ffmpeg e funziona sempre. Spesso la risoluzione nello script non è delle migliori ma è disponibile facilmente su tutte le distro Linux

livestreamer s’appoggia nello script a ffplay (o VLC) e fornisce un’ottima risoluzione, però potrebbe non riprodurre alcuni canali (soprattutto RAI1). Inoltre non tutte le distro Linux lo forniscono nei repository ufficiali e bisogna cercare in rete dove e come fare il download. E’ consigliabile comunque installarlo tramite pip, un tool che permette di installare pacchetti in python (qui una guida all’uso). In pratica, una volta installato pip dare il comando da terminale (eventualmente come amministratore) pip install livestreamer

mpv fornisce ottime prestazioni funzionando su tutti i canali con la risoluzione più alta possibile. Ha anch’esso l’inconveniente che su qualche distro Linux è necessario cercare in rete il download del programma perchè non fornito nei pacchetti ufficiali

 

E’ quindi possibile personalizzare (modificando lo script alla riga  40) l’ordine con il quale lo script usa i player citati. Ad esempio modificandolo in: ‘ffplay mpv livestreamer’ lo script userà prima ffplay. Fpplay parte con l’opzione ‘-infbuf’ (riga 51) di default. Se la versione di ffplay usata non supporta questo parametro si puo’ togliere. Ne potrebbe soffrire solo un po’ la fluidita’. Nel codice è possibile modificare facilmente anche il player per le dirette radio (modificare la riga con RadioPlayer=”smplayer” in RadioPlayer=”vlc”, ad esempio). Se si usa livestreamer è anche possibile modificare il player alle righe 404 e 405  (aggiungendo simbolo # inizio riga). Con il simbolo # alla riga 404 livestreamer userà VLC, viceversa alla riga 405  userà ffplay.

Eventuali utenti FreeBSD e derivate devono avere l’accortezza di compilare ffmpeg con l’opzione SDL abilitata (comando make config prima di compilare). Lo si lancia poi da terminale con bash -x rainix. Su FreeBSD non funziona RAI Replay.

Se si vuole registrare il flusso dopo averlo fatto partire, ridare il focus sulla finestra principale dello script (cliccando la finestra dove c’è il menu con i programmi) e digitare sulla tastiera ‘ctrl +c‘. Si chiude la finestra del terminale che interrompe lo streaming e ne parte una con ffmpeg che registra il flusso nella cartella di default (/tmp/Rai). Ovviamente il percorso di destinazione può essere modificato nel codice dello script (nella riga dove è scritto Savedir=”tmp/Rai”). Per la registrazione il tool di riferimento rimane comunque ffmpeg e non libav. Ciò significa che usando quest’ultimo tool, la registrazione non sarà possibile. La registrazione (ctrl + c) funziona sia con le dirette live che con i replay. I replay sono ottimi come qualita’. Le live vanno quasi tutte bene tranne Rai1/2/3. Usano un flusso che ffmpeg potrebbe in alcune versioni o distro Linux non riuscire a decodificare.

Attenzione: si ricorda che l’uso della funzionalita’ di registrazione dei flussi sia di RaiNix che di altri noti strumenti è responsabilità esclusiva dell’utilizzatore finale e deve essere usata solamente per motivi personali di studio, senza ledere i diritti Rai.

Se il video dovesse andare a scatti, provare a ridurre la qualità video con l’apposita opzione a disposizione nel menu (‘Set Video Quality’). Se ci fossero ancora problemi, si segnala che lo script si limita a reperire il link del flusso originale e metterlo a disposizione del player in uso. Poichè le variabili in gioco sono molte (dalla connessione, all’hardware video e player usato) eventuali malfunzionamenti su alcune distribuzioni Linux possono essere causate da vari fattori non facilmente individuabili. Con ‘ctrl + \’ (Equivale ad un SIGQUIT) si chiude il tutto, oppure si esce seguendo i pannelli a ritroso.

 

Ora potrete vedere anche voi questi fottutissimi Europei con la vostra GNU/Linux box.

Io l’ho testato usando ffplay e non ho avuto alcun problema nel vedere uno qualsiasi dei canali disponibili.

 

Categorie: planet

Systemd kill my detached tmux session

mm-barabba - Dom, 12/06/2016 - 21:34

Ricordo ancora le parole del mio maestro di Linux : “il PC sicuro è il PC spento”

Su questo filo sottile hanno danzato illustrissime menti del nostro secolo per portare a uccidere una sessione di tmux quando si termina una sessione SSH.

Visto l’utilizzo del raspberry PI unicamente attraverso una sessione SSH, senza poter mantenere alcuni processi attivi all’interno di una sessione tmux, direi che potrei usarlo come portacenere.

Ma per chi vuole ostinarsi ad avere una macchina insicura una soluzione c’è !!!

 

a seguire

Parte tutto da una problema rilevato dopo il riavvio del PI, avevo lanciato tmux e tutti i processi che mi servivano erano avviati, faccio un detach della sessione per ritrovarmi tutto come sempre.

Al ritorno trovo la macchina come se tmux non fosse mai stato avviato, così parte una ricerca sul web, possibili colpevoli tmux e systemd di cui ho sempre meno fiducia.

Grazie all’aiuto di Nemo (il mitico pesciolino ? ) mi viene servito un link interessante su un piatto d’argento.

Systemd 230 Is Upsetting Some Over Its KillUserProcess Setting

in pratica scopro che una nuova funzione è stata abilitata in /etc/systemd/logind.conf , la soluzione come qui riportato sta nel modificare una riga in :

KillUserProcesses=no

fatto questo tutto sarebbe a posto se si riuscisse a riavviare systemd.

Ho provato :

systemctl --daemon-reload

ma è stato come mangiare un bif.

pare che :

systemctl daemon-reexec

dia migliori risultati, ma non ho potuto testare perché ho fatto un reboot spontaneo prima di riuscirci.

L’importante è che adesso tutto funziona come prima, ovvero come volevo che funzionasse.

 $ linuxlogo     .~~.   .~~.         ___                __                      ___  _    '. \ ' ' / .'       / _ \___  ___ ___  / /  ___  ___ ___ _ __  / _ \(_)     .~ .~~~..~.       / , _/ _ `(_-</ _ \/ _ \/ -_) __/ __/ // / / ___/ /    : .~.'~'.~. :     /_/|_|\_,_/___/ .__/_.__/\__/_/ /_/  \_, / /_/  /_/   ~ (   ) (   ) ~                 /_/                    /___/  ( : '~'.~.'~' : )   ~ .~ (   ) ~. ~     Linux Version 4.4.12+    (  : '~' :  )      Compiled #892 Thu Jun 2 15:19:48 BST 2016     '~ .~~~. ~'       One ARM  Processor, 240M RAM         '~'           697.95 Bogomips Total                       raspberrypi

o

 $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description:    Raspbian GNU/Linux testing (stretch) Release:        testing Codename:       stretch

Categorie: planet

[ Check-Raid ] Stoppare il controllo del Raid

toshidex - Mar, 22/07/2014 - 00:18
A volte potrebbe capitare di dover stoppare lo script raid-check e per farlo non basta un kill -9 PID. Per stoppare il processo bisogna cambiare lo status del file sync_action. # echo "idle" >/sys/block/DEVICE/md/sync_action dove al posto di DEVICE dovete scrivere il vostro device, esempio (md1,md3 o md0).   Dev Null Articoli Correlati:
  1. JCKEditor su Joomla 1.5 problemi controllo corpo dell’articolo
  2. IPv6 addrconf: prefix with wrong length 56
  3. L’antico Hard Disk andava portato in salvo.
Categorie: planet

Generare le traduzioni per i modelli di ActiveRecord

maxer - Lun, 17/03/2014 - 09:30

Ruby on Rails è sicuramente un framework molto potente, ma lo sviluppatore italiano soffre spesso del problema della traduzione dei modelli, in quanto la nomenclatura usata è prevalentemente inglese ed è best practice usare l’inglese nei modelli e negli attributi. Da qui la necessità di tradurre i nomi dei modelli e i nomi degli attributi dei modelli.

Dopo aver speso una considerevole quantità di tempo a ricopiare a mano gli attributi dei modelli e inserire le traduzioni ho trovato questa gemma: i18n_generators che permette di generare il file usato per poi tradurre il nome dei modelli e degli attributi.

Una volta installata come gemma, il funzionamento è semplice:

$ rails g i18n_translation it

il comando (ci metterà un po’) analizzerà i nostri modelli e genererà il file con tutti gli attributi, pronto per accogliere le nostre traduzioni. Inoltre, se eseguito nuovamente in seguito, conserverà le chiavi esistenti aggiungendo quelle mancanti, semplificandoci di molto il lavoro.

 

Categorie: planet

Pulire l’html da tag non necessari con sanitize

maxer - Gio, 06/03/2014 - 13:56

Continuando quanto detto ieri, circa la chiusura di tag html lasciati aperti, oggi vi presento un’altra gemma molto interessante: sanitize.

L’obiettivo di questa gemma, basata su nokogiri, è di pulire l’html da tag non voluti o malevoli.

Una volta installata, potremo accedere al metodo “clean” della classe “Sanitize” nel seguente modo:

Sanitize.clean(html)

questo rimuoverà, come impostazione di default, tutti i tag html. Oltre al filtro di default, moooolto restrittivo, sono presenti anche i seguenti filtri:

Sanitize::Config::RESTRICTED che permette solo la formattazione del test

Sanitize::Config::BASIC che permette la formattazione del testo, le liste e i link

Sanitize::Config::RELAXED che permette quanto detto sopra con l’inclusione di immagini e tabelle

L’uso è semplice:

html = '<!DOCTYPE html><html><b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg"></html>' Sanitize.clean(html, Sanitize::Config::RELAXED) # => '<b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg">'
Categorie: planet

Forzare la chiusura dei tag html con nokogiri

maxer - Mer, 05/03/2014 - 13:36

Affrontando l’esportazione di un sito sviluppato alcuni anni fa in Ruby on Rails, mi sono accorto che chi ha inserito i contenuti ha lasciato dei tag html aperti. La cosa da non pochi problemi nel sistema di destinazione in quanto destabilizza la grafica (sapete anche voi quanto casino può generare un <div> non chiuso).

Per risolvere questo problema possiamo usare la gemma nokogiri, un parser html e xml.

La sintassi è semplice:

Nokogiri::HTML.parse('<div>').inner_html

Ci restituirà la struttura completa di una pagina html con il <div> correttamente chiuso:

"<html><body><div></div></body></html>"

Ovviamente noi non abbiamo bisogno di tutta la struttura della pagina, quindi possiamo sfruttare il metodo .children che restituisce il tag successivo a quello più esterno:

Nokogiri::HTML.parse('<div>').children.children.inner_html => "<div></div>"

In questo modo abbiamo il nostro codice html corretto.

Categorie: planet

Sclero da e-commerce

maxer - Gio, 30/01/2014 - 16:31

Oggi sono vicinissimo allo sclero… per colpa di un e-commerce realizzato con un prodotto (opencart) che, insieme ai vari prodotti ecommerce e anche qualche forum, mi hanno deluso profondamente.

Veniamo a noi: quando uno un cms/framework/prodotto ben fatto (drupal o wordpress) mi trovo davanti a moduli self-containet che, tramite hook o funzioni, interagiscono col cms/framework e fanno il loro dovere.

Con opencart (il colpevole in questo caso) questo non succede e i moduli più interessanti richiedono patch o l’utilizzo di vqmod, che in pratica va a modificare i sorgenti a runtime… l’idea di base potrebbe essere buona, se non fosse che ad ogni aggiornamento c’è da sperare che tutto combaci alla perfezione, che tutti i plugin siano compatibili con la nuova versione e che le modifiche che apportano ai sorgenti non vadano in conflitto tra di loro…

Così non è possibile lavorare, secondo me… ora inizio a studiare spree

Categorie: planet

Report attivitá del mese

risca - Ven, 06/09/2013 - 19:31

Cari internauti,

prendendo ispirazione dal planet di debian.org ho deciso periodicamente di fare il punto delle mie attivitá correlate al software libero mese per mese.

Agosto é stato un periodo ricco di emozioni legate alla comunitá Debian, ma con un sapore un po' amaro per il susseguirsi di vicende personali e lavorative che mi sono stato fonte di cruccio e distrazione. Peró permettetimi adesso di concentrarmi sulle prime e dimenticare per un po' le seconde.

In questo agosto 2013 c'é stato il 20o compleanno di Debian e la 13a edizione del DebConf. L'ubicazione é stata una delle piú appropriate, uno splendido camp nei pressi di Vaumarcus, vista lago e montagne. Per fortuna il posto é comodo anche per noi italiani, traducendosi in poco meno di 3 ore di auto da Torino e Milano. Ossia una occasione troppo ghiotta per non provare a farci un salto, e cosí è stato. Sono riuscito infatti a tagliarmi almeno tre giorni per partecipare al meeting. Come al solito i talk sono stati di altissimo livello ma devo ammettere che, essere là e partecipare dal vivo é tutta un'altra cosa rispetto a vedersi. Ho avuto modo di conoscere persone fantastiche ed il piacere di scambiare libere opinioni, o di abbinare alcuni nomi che vedo periodicamente nelle mailing list e IRC con i rispettivi volti. Consiglierei a tutti di fare un salto alla prossima occasione buona, seppure conscio che purtroppo la prossima edizione sia parecchio lontana (Portland, Oregon, USA).

Finalmente ho pubblicato su github gitorious il codice di proprietary OS destroyer. A dire il vero dovrei migliorare ancora un po' lo stile del messaggio, peró il piú é già stato fatto. Non posso che augurarmi che lo script abbia un buon successo e sia adottato anche da altri portali oltre il mio!
Ulteriore informazioni sono reperibili sul mio wiki (work in progrss).

Sará forse il lungo periodo di totale far niente in spiaggia al mare (ma che interminabile noia) ma ho finalmente rimesso in cantiere il progetto di costruirmi la mia prima RepRap, la stampante 3-D libera! Ad essere sinceri il progetto langue giá da un po' nel mio cassetto dei sogni irrisolti. Avevo giá provato ad iniziare il progetto circa un annetto fa, ma senza poi alcun seguito. Quest'anno invece ho l'intenzione di appoggiarmi ad un FabLab per avere un po' di aiuto ed assistenza. Forse cosí sará la volta buona ;-)

Bene, per agosto é tutto, speriamo con settembre di riuscire finalmente a fare qualcosa di interessante...

 

P.S.: inoltre ad agosto ho iniziato a seguire qualche post di programmazione di Coursera. Consiglio a tutti di buttarci un occhio...

Categorie: planet

The Beauty of Programming

risca - Mer, 26/06/2013 - 01:52

Perchè l'informatica può affascinare così tanto, seppure vista da fuori i più la percepiscono come una attività noiosa? Come è possibile che 797 cm2 possano essere più interessanti di tutto ciò che accade attorno?

Penso che (stima molto a ribasso) per il 99,999% del suo tempo di vita ad un generico processore del computer sia richiesto di eseguire compiti tristi, al pari dell'intelligenza di una lavatrice1. Ad esempio rapire l'utente di un social network illudendolo di avere un vita sociale, lobotomizzare il giocatore con uno sparatutto o fare imprecare il lavoratore con un programma di merda scritto da un programmatore che nulla sa in merito a ciò che il suo software andrà ad effettuare ma che si fa pagare ugualmente bei soldoni. Poi, in alcuni casi più unici che rari, la CPU non viene impiegata per far girare il solito pornazzo con flash, né per cliccare sul primo allegato dell'amico ed infettare il computer, o far girare un antivirus talmente intelligente da ciucciare talmente tante risorse da bloccare il computer stesso.

Qualche rara volta invece il PC da strumento diventa il fine. Ossia esiste qualche strano2 individuo della società moderna che usa il PC per amore del PC stesso. Non sta davanti al monitor né per produrre qualcosa di utile né per diletto o per trascorrere del tempo. Invece lo usa per capire come funziona e per crearsi le proprie regole.

Certo, alcuni di questi individui a volte presentano tratti singolari, ma i più li riconosci semplicemente perché hanno lo sguardo curioso, sanno meravigliarsi e stupirsi delle piccole cose, quelle a cui i più non danno peso. Sanno apprezzare la bellezza della logica e spesso sul loro computer gira qualcosa di insolito. Alcuni non usano persino il topo! e per fare qualsiasi cosa digitano parole su parole e sigle incomprensibili. E se li guardi stupito rispondono, bhe è così perché comodo e più veloce, guardano lo schermo (monitor nero soffocato di caratteri bianchi) è dicono che sia bello...

Invece no, non è bello, è magnifico. Il nostro acaro può con la forza della parola plasmare mondi paralleli, creare nuove regole e ordini. Si tratta di universi talmente complessi in cui a volte è facile perdersi nella propria logica. L'algoritmo è un esempio di poesia. Saper descrivere una legge nel modo più elementare possibile, quello che appena lo vedi capisci che è quello giusto.

Così dedico queste due righe al piacere di giocare con l'informatica in sé. Certo, il computer può essere anche un elettrodomestico utile e divertente, ma il massimo piacere è la possibilità di giocare con la logica e la matematica in una propria dimensione.

Grazie a tutta la comunità e a tutti gli appassionati del software libero.

 

Come diceve il sommo poeta...
6661747469206e6f6e20666f737465206120766976657220636f6d652062727574692c206d612070657220736567756972207669727475746520652063616e6f7363656e7a610a

Note
  1. sì, proprio come molti non sanno come usare la lavatrice altrettante persone non sanno usare minimante un computer.
  2. Ad esempio ecco cosa pensa Linus Torvalds della bellezza di programmare.
Categorie: planet

Chiavetta ONDA TM201 (1ee8:0064). Come non sviluppare il software libero.

risca - Mer, 19/06/2013 - 15:23

Ebbene sì, i cellulari da 100 Eurozzi hanno a volte una capacità di connessione un po' infima. Da qui l'urgenza di comprarmi la chiavetta Internet per la mia connessione in mobilità.

Pur volendo fare una scelta consapevole, specie se in un posto di villeggiatura, si è costretti a prendere quel che capita sullo scaffale del negoziante TIM/WIND/Vattelapesca. E non puoi nemmeno chiedere consiglio perché se parlassi di potenza e di onde tutt'al più il commesso ti risponderebbe cosa centri il capoluogo più alto d'Italia con il mare.

E così mi finì tra le mani lei, bianca e lucida come un supposta, ma di dimensione un po' più grande e meno scivolosa: la chiavetta ONDA TM201, riferimento lsusb 1ee8:0064. Antenna interna e, udite udite, supporto Linux ben indicato sulla confezione. Ganzo ganzo me la porto a casa e non aspetto altro che inserirle nel posteriore del mio portatile, sapendo che come dice la confezione con Linux va che è un bomba.

Aspetto.

Aspetto ancora un poco.

Non succede nulla: la chiavetta non lampeggia, in network-manager non la visualizza e la vedo solo come disco cdrom1 (e poi perché cavolo visualizzarla come cdrom se è solo una chiavetta USB?).

Per fortuna il web ti è amico. Così scopro che il dispositivo funziona già bene con il kernel e i driver Linux di wheezy (penso probabilmente anche quelli di squeeze seppure non abbia effettuato alcuna prova). L'unico problema è far effettuare il passaggio del dispositivo da periferica di massa a modem seriale. Però dai changelog si vede benissimo che il supporto è già stato inserito nel pacchetto usb-modeswitch/usb-modeswitch-data di sid.

Perfetto, installo usb-modeswitch >= 1.2.6 prelevandola da sid (al momento versione: 1.2.6+repack0-1) et voilà, tutto funziona!

A questo punto mi sorge una spontanea riflessione sui cavoloni della Onda Communication S.p.a.: vuoi supportare Linux perchè è cool e figo? Allora lavora alla maniera di Linux!

Perché cavolo crei un software che:

  • è totalmente proprietario (ma qui siamo nel regno della Free Software Foundation!);
  • probabilmente per larga parte ricorre a software libero;
  • non è necessario siccome il device è già supportato in Linux;
  • richiede la disabilitazione di programmi già installati sul sistema (sì, proprio vero, tra i requisiti chiede di fermare il network-manager).

Una persona sana di mente non avrebbe agito proprio così! Piuttosto avrebbe:

  • verificato quali software fossero già disponibili nel variegato panorama Linux;
  • avrebbe collaborato allo sviluppo del software necessario (usb-modeswitch in questo caso), o fornito le patch necessarie. Notare che a proposito qui stiamo discutendo di proprio 2 righe di codice;
  • avrebbe indicato i requisiti minimi del software necessario per usare il dispositivo (ossia la versione di usb-modeswitch, wvdial e network-manager);
  • al limite avrebbe creato come ultima spiaggia, dopo tutti i passi precedenti che non richiedono comunque un grosso sforzo, un programma che, senza bisogno di alcuna installazione sul sistema, possa permetterne l'utilizzo anche a quegli sfigati che non possano agire diversamente.

E così invece in rete si trovano miriadi di discussioni su come installare il software proprietario della Onda - molte spesso con target utente Ubuntu - che invece non serve a a una beata mazza, perché tutto funziona con il solito software libero!

Riguardo invece ai programmatori della ONDA penso che piuttosto che fare poco e male sia meglio non fare proprio nulla.

Mi dispiace solo che spesso vi sia l'andazzo alla W$, installiamo questo e quello, la licenza non importa, non so cosa faccia ma va bene così. Va bene così un cavolo, perché non dimentichiamoci che se abbiamo una così bella piattaforma e solo perché libera, perché tutti possono contribuire e metterci le mani.

Forse non sarà chiaro a molti utonti, ma uscire da questo sistema basato sulla collaborazione significa la fine stessa di questo magnifico universo.

Note su usb-modeswitch

Il codice da inviare è il seguente:

# Onda TM201 14.4 (TIM Italy)

TargetVendor = 0x1ee8
TargetProduct = 0x0064

MessageEndpoint = 0x01
MessageContent = "555342431849128600000000000008FF000000000000030000000000000000"
Fonte: www.draisberghof.de/usb_modeswitch/

Categorie: planet

Paese nel pallone. Vince il metodo STAMINA.

risca - Gio, 06/06/2013 - 23:47

Gioite compagni di disavventura, imbarcati in una nave sanza nocchiere in gran tempesta!, il metodo STAMINA alla fine l'ha spuntata. E l'ha spuntata a man bassa!

Non solo ha ottenuto un blebiscito alle camere (un solo contrario!) ma si porta a casa anche 3 milioni di "investimenti in ricerca" dal ministero della sanità. E per fortuna che avevamo in parlamento gente nuova, con un grillo per la testa, capace di fare la differenza. E per fortuna che abbiamo trasmissioni di inchiesta che sanno discernere tra il vero e la truffa. Macché, la TV è fatta solo di Iene che inseguono audience a scapido di insinuare false speranze a che vive nella disperazione più totale. Speranze a persona che già poter pensare ad un anno, un mese di vita potrebbe essere un miracolo.

Grazie anche a tutti gli allocchi che hanno creduto al complotto, alle lobby farmaceutiche e agli scienziati invidiosi. Ma che importa, tanto questi allocchi hanno le gambe per andare a protestare contro i mulini a vento!

Siccome la storia non insegna nulla, il faccendiere Davide Vannoni era già noto alle cronache. Non solo alle aule giudiziare e pm torinesi ma anche al pubblicoarticolo la stampa del 24/05/2011. Ma anche all'estero stanno ridendo di noi e della nostra capa cava: ben due articoli dedicati alla stupidità umanaitaliana da nature.

Ma non vi siete convinti e volete ancora credere al grande mago Vannoni? Perdete almeno ancora un attimo a leggere wikipedia o Le Scienze. Ridete ancora adesso?

Categorie: planet
Condividi contenuti