giovedì 22 settembre 2016

abilitare l'accesso ssh per root con ubuntu (dalla 14 in poi)

Dalla 14 in poi l'accesso ssh è disabilitato di default.

Può essere riabilitato facilmente:

nel file

/etc/ssh/sshd_config

commentare

PermitRootLogin without-password

inserire

PermitRootLogin yes

e riavviare il servizio

service ssh restart

e poi

sudo su -

e cambiare la password di root con passwd


martedì 30 agosto 2016

mount.nfs: mount system call failed

Nel caso vi si presenti questo errore, il metodo che ha maggior successo nel risolvere è specificare manualmente tutte le opzioni:

sudo mount -o vers=3,proto=tcp,nolock,noacl 192.168.0.9:/volume1/musica /media -v

naturalmente vers dovrà specificare la versione utilizzata e proto il protocollo corretto

specificare le opzioni per altro può aumentare nuotevolmente il tempo di mount (nel caso di fallback a seguito di timeout, non è passare da 15s di tempo di mount a meno di 1).

per testare i tempi di mount potete aggiungere un time davanti ai due comandi di mount:

time sudo mount -o vers=3,proto=tcp,nolock,noacl 192.168.0.9:/volume1/musica /media -v

time sudo mount 192.168.0.9:/volume1/musica /media -v

Se avete bisogno di listare o verificare quali nfs sono disponibile per il vostro client da un determinato server (utile anche in caso di problemi):

showmount -e 192.168.0.9



martedì 16 agosto 2016

Lista pacchetti installati con dimensione su debian/raspbian (raspberry)

Si trovano diversi comandi in giro per fare questa operazione, i due che mi sono piaciuti (funzionano e sono rapidi...) sono:

dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n


lunedì 8 agosto 2016

reset stampante via usb da linux

Editate un file usbreset.c con dentro questo:

/* usbreset -- send a USB port reset to a USB device */

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>


int main(int argc, char **argv)
{
    const char *filename;
    int fd;
    int rc;

    if (argc != 2) {
        fprintf(stderr, "Usage: usbreset device-filename\n");
        return 1;
    }
    filename = argv[1];

    fd = open(filename, O_WRONLY);
    if (fd < 0) {
        perror("Error opening output file");
        return 1;
    }

    printf("Resetting USB device %s\n", filename);
    rc = ioctl(fd, USBDEVFS_RESET, 0);
    if (rc < 0) {
        perror("Error in ioctl");
        return 1;
    }
    printf("Reset successful\n");

    close(fd);
    return 0;
}
compilate con:
 cc usbreset.c -o usbreset
date i permessi:

chmod +x usbreset
beccate le coordinate delle stampanti:

artexe@mryouen-kiosk:~$ lsusb
Bus 002 Device 002: ID 0dd4:015d Custom Engineering SPA
e resettate la stampante:

sudo ./usbreset /dev/bus/usb/002/002

venerdì 5 agosto 2016

mysql: elenco delle tabelle con spazio occupato

Per sapere quale tabella sta occupando più spazio nel vostro mysql:

SELECT table_name AS `Table` , round( ((data_length + index_length) /1024 /1024 ) , 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY `Size in MB` DESC

giovedì 4 agosto 2016

forzare il controllo del filesystem al riavvio su linux (ubuntu ma anche gli altri!)

Le distro più recenti non permettono più il comando:

shutdown -rF now

ma basta semplicemente fare un

sudo touch /forcefsck

seguito dal comando di riavvio.

il sistema operativo al riavvio si accorge della presenza del file ed effettua un check (poi lo cancella).

Mi fanno però notare che se il filesystem non è scrivibile questo sistema potrebbe non funzionare per ovvi motivi...

venerdì 22 luglio 2016

Aprire il pannello di controllo delle stampanti da riga di comando in windows

Se dovete fare assistenza remota, chiedere a chi sta dall'altra parte di fare Windows+R e lanciare un comando è relativamente facile e veloce.

Recentemente ho dovuto chiedere di aprire il pannello stampanti, il comando è questo:

control printers

Qui trovate un più fornito elenco di comandi:

https://support.microsoft.com/it-it/kb/192806

giovedì 21 luglio 2016

riavvio rete con ubuntu 14

ubuntu 14 non permette più il riavvio di rete con un comando secco, quindi il comando ve lo dovete fare voi:

sudo ifdown eth0 && sudo ifup eth0

in realtà anche eth0 nell'esempio è ormai "datato" e a meno di schede esterne sala del tipo p2p1...

mercoledì 20 luglio 2016

Uptime sulle macchine windows

Capita sempre di voler sapere da quanto tempo è accesa una macchina, anche sotto windows!

net statistics server
net statistics workstation

se funziona nelle versioni abbreviate:

net stats srv

giovedì 14 luglio 2016

version di firefox con apt

firefox --version

vi fornisce la versione del ff

apt-cache policy firefox

per ottenere info sulle versioni disponibili per la vostra distro, per esempio:

firefox:
  Installato: 41.0.1+build2-0ubuntu0.14.04.1
  Candidato:  47.0+build3-0ubuntu0.14.04.1
  Tabella versione:
     47.0+build3-0ubuntu0.14.04.1 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
        500 http://it.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
 *** 41.0.1+build2-0ubuntu0.14.04.1 0
        100 /var/lib/dpkg/status
     28.0+build2-0ubuntu2 0
        500 http://it.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

versione distro per rehat/centos e ubuntu

Banale, ma sempre utile!

Su redhat

cat /etc/redhat-release

Mentre su ubuntu:

lsb_release -a

mercoledì 13 luglio 2016

livello di logging dell'upstart

Se avete necessità, per esempio, di monitorare la partenza dei servizi, è necessario aumentare il livello di log dell'upstart.

sudo initctl log-priority
per avere il livello settato

sudo initctl log-priority --helpper avere i livelli disponibili

sudo initctl log-priority infosetta il livello a info, con messages non loggerà gli stop e gli start ma solo i messaggi

infine leggere il file di log:
cat /var/log/boot.log

upstart: anticipare la partenza di sshd

Sulle versioni recenti di ubuntu, l'ssh parte leggermente in ritardo, se come me aveste l'esigenza di anticipare il più possibile la partenza (come avveniva sino alle 10 circa...) questo è quanto:

editare il file:

/etc/init/ssh.conf

cancellettare la riga:
#start on runlevel [2345]

e aggiungere la riga:
start on filesystem

in questo modo anzichè partire sul runlevel 2, l'sshd partirà appena montato il filesystem.

lunedì 11 luglio 2016

Installare sar sotto ubuntu

Possiamo trovare sar nel pacchetto sysstat che installiamo con:

sudo apt-get install sysstat
Poi modifichiamo la configurazione per abilitarlo:

nel file
sudo vi /etc/default/sysstat

modificare il parametro:
ENABLED="true"

nel file di cron:
sudo vi /etc/cron.d/sysstat
modificare da
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
a
*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

i file generati si trovano qui:
ls -lah /var/log/sysstat/

trovare le tabelle più grandi in mysql

SELECT table_name AS `Table` , round( ((data_length + index_length) /1024 /1024 ) , 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY `Size in MB` DESC;

Stress test senza installare alcun tool

E sorta la necessità di portare al 100% le cpu di una vecchia distro, il cui repository è stato spento da tempo. Si può sempre perdere tempo a risolvere il problema: portare i file da un'altra macchina, configurare un repo alternativo...

Il sistema più veloce è lanciare questo comando:

cat /dev/zero > /dev/null

Una volta per ogni CPU!

lunedì 4 luglio 2016

Doppio default Gateway su Linux

In alcune versioni di Linux non è possibile configurare direttamente default gateway multipli.

Seguendo questa guida:

https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

Ho proceduto così:

Verificare che sia possibile configurare tabelle di routing multiple:

more /etc/iproute2/rt_tables

aggiungere una riga alla fine per creare una nuova tabella:

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
1 rt2

Inserire a caldo le nuove regole:

ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2

(la prima è necessaria perchè dichiara che per la subnet locale si passa dalla eth1, per l'ip della macchina
la secondo dichiara effettivamente il default gateway)


Indicare in quali situazioni applicare le regole della rt2:

ip rule add from 10.10.0.10/32 table rt2
ip rule add to 10.10.0.10/32 table rt2

(la tabella rt2 deve essere usata per tutto il traffico da e per l'ip della seconda scheda di rete)


Verificare l'applicazione delle regole:

ip route list table rt2
ip rule show

Come ulteriore verifica potete provare a raggiungere la scheda di rete da una subnet differente...

Se tutto funziona potete rendere definitivo con:

iface eth1 inet static
    address 10.10.0.10
    netmask 255.255.255.0
    post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
    post-up ip route add default via 10.10.0.1 dev eth1 table rt2
    post-up ip rule add from 10.10.0.10/32 table rt2
    post-up ip rule add to 10.10.0.10/32 table rt2

Si noti che i default gw aggiuntivi vengono configurati in post-up, altrimenti la seconda dichiarazione andrebbe a sovrascrivere la prima...