Monthly Shaarli
February, 2018

Donc, hormis les améliorations sur les retards, sur la communication et la clarté des offres, y a pas besoin de tuer les cheminots ni les petites lignes.
Vieux (3 mois !!) mais à lire .
Via http://sebsauvage.net/links/?8_viyg
Petit coup de gueule de LinuxFR. Faut dire qu'avec les virus, c'est une grosse partie de mon job. Nos clients ne savent pas que 70% des mails sont supprimés en amont pour spam/virus.

Des vêtements amples, se protéger du vent, pas de cotons contre le peau et de la tartiflette ;-)
j'avoue, pas mal.
Très bien avec :
100g de sucre
deux pommes
un citron entier
four à 200°
mettre le jus de citron dans la pâte, les fruits sur la pâte déjà dans le moule.
On lui dit qu'il ne bat pas des ailes aussi...
Non ça sera trop pour lui
#expert...

Ça m'a l'air sympa sur le principe.

Beurk :
exclude=kernel nss nss-
Package names are separated by a space. Shell globs using wildcards (eg. * and ?) are allowed.
For dnf, the configuration file is located under:
/etc/dnf/dnf.conf
Pour la vérification TLS, etc...
chez le copain aeris <3
Un bon outil pour tester la mise en place d'un certificat.
On peut maintenant personnaliser notre configuration avec plusieurs options. Par défaut, lorqu'un client gluster accède au cluster via un des noeuds et que celui-çi subit une indisponibilité de service, glusterfs-serveur mettra 42 secondes pour le reconnecter automatiquement sur un autre noeud. On peut réduire ce timeout à une seconde:
stockage1:~$ sudo gluster volume set vol1 network.ping-timeout 1
success
Si la charge de travail est basée sur des petits fichiers, la performance générale de Gluster va diminuer considérablement car les lookups seront de plus en plus nombreux, ainsi que les métadonnées à lire. Pour combler ceci, l'utilisation de disque SSD est très fortement conseillée. Une large bande-passante serait également souhaitable. Mais pour aller plus loin, nous pouvons activer plusieurs threads par écriture/lecture sur le cluster. Cela correspond par exemple à 3 connexions TCP simultanées pour chaque accès à un fichier sur le système de fichier. Un exemple de configuration serait le suivant:
stockage1:~$ sudo gluster volume set vol1 client.event-threads 3
La même manipulation peut être faite entre les noeuds du cluster:
stockage1:~$ sudo gluster volume set vol1 server.event-threads 5
Maintenant, on vérifie l'état final de la configuration:
stockage1:~$ sudo gluster volume info vol1
Volume name: vol1
Type: Replicate
Volume ID: d6954613-92g1-46e7-2w38-3r1298ze6y72
Status: Started
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: stockage1:/mnt/pool1/brick1
Brick2: stockage2:/mnt/pool1/brick1
Brick3: stockage3:/mnt/pool1/brick1
Brick4: stockage4:/mnt/pool1/brick1
Options Reconfigured:
network.ping-timeout: 1
client.event-threads: 3
server.event-threads: 5
Command Syntax
find /path/to/files* -mtime +5 -exec rm {} \;
Note that there are spaces between rm, {}, and \;
Explanation
The first argument is the path to the files. This can be a path, a directory, or a wildcard as in the example above. I would recommend using the full path, and make sure that you run the command without the exec rm to make sure you are getting the right results.
The second argument, -mtime, is used to specify the number of days old that the file is. If you enter +5, it will find files older than 5 days.
The third argument, -exec, allows you to pass in a command such as rm. The {} \; at the end is required to end the command.
Ça peut arriver en cas d'attaque DDOS. Le blacklist par ASN est moins coûteux que du filtrage par firewall. Mais en théorie, on vire ce blocage juste après l'attaque.

Pardonnez mon ignorance, je ne pensais pas que les episiotomies étaient une pratique aussi courante ( souvent une femme sur deux/sur trois).
apt install thin-provisioning-tools

Sachant bien que le status du cheminot se définit essentiellement par un emploi à vie, donc un CDI.
J'ai envie de dire pourquoi ? De la jalousie d'avoir une situation professionnelle moins protectrice ?
Sur ces 69%, combien on su définir le status "cheminot" ?

de belles images de ces derniers JO.

XD : Pau / Oloron
donc la SNCF réouvre une ligne Olorons-Bedous dans le 64, puis l'isole en supprimant la seule ligne qui dessert Oloron...
mysql -uuser -ppassword db -e 'show tables'| awk '{ print $1}' | grep -v '^Tables' | sed 's/(.*)/drop table \1;/g' | mysql -uuser -ppassword db
on doit pouvoir faire mieux avec des sockets et/ou des alias.

À Tours, on est tellement en avance sur les transports en commun que le bus/tram arrête son service à minuit, semaine et week-end...
Quand il fait un temps pitoyable pour prendre le vélo, il ne reste que la voiture et ses emmerdes ( un sam, place à trouver, circulation dans des petites rues, piétons nombreux)
Arf. Top ! Il me reste que 5 min... Pas cool pour ce soir XD
Va falloir le dire à mademoiselle XD

Mouaih... vive le journalisme
Pour avoir une sauvegarde synchrone de l'history Bash.
A tester dans le détail.

Comment les dinosaures disparaissent.
10 ans sans télé pour ma part.

En boucle :
for db in ls /var/www/db/*.sqlite3
do
/usr/bin/sqlite3 $db ".backup /backup/db/$(date +"%Y-%m-%d").$(basename $db)"
done
Que des petites bêtes. Bien jolies <3

Modifs : mettre + de farine pour obtenir un beau pâton, une cuillère à soupe de sucre et un sachet de levure.
♦ PETITS PAINS AUX FRUITS SECS ♦
Ingrédients pour 8 petits pains : 250g de farine de blé – 1 cuillère à café de sel fin – 1/2 paquet de levure chimique – 80g de flocons d’avoine – 25cl de lait demi-écrémé – 1 cuillère à soupe de miel de châtaigniers – 100g de fruits secs, ici raisins secs et amandes
Un autre site pour vérifier le TLS/SSL
AllowUsers admin@123.123.123.10 admin@10.88.88.* yurisk
Pour savoir quelles tables ont beaucoup d'espace vide (savoir si un vacuum full sera efficace) :
SELECT
current_database(), schemaname, tablename, /reltuples::bigint, relpages::bigint, otta,/
ROUND((CASE WHEN otta=0 THEN 0.0 ELSE sml.relpages::FLOAT/otta END)::NUMERIC,1) AS tbloat,
CASE WHEN relpages < otta THEN 0 ELSE bs(sml.relpages-otta)::BIGINT END AS wastedbytes,
iname, /ituples::bigint, ipages::bigint, iotta,/
ROUND((CASE WHEN iotta=0 OR ipages=0 THEN 0.0 ELSE ipages::FLOAT/iotta END)::NUMERIC,1) AS ibloat,
CASE WHEN ipages < iotta THEN 0 ELSE bs(ipages-iotta) END AS wastedibytes
FROM (
SELECT
schemaname, tablename, cc.reltuples, cc.relpages, bs,
CEIL((cc.reltuples((datahdr+ma-
(CASE WHEN datahdr%ma=0 THEN ma ELSE datahdr%ma END))+nullhdr2+4))/(bs-20::FLOAT)) AS otta,
COALESCE(c2.relname,'?') AS iname, COALESCE(c2.reltuples,0) AS ituples, COALESCE(c2.relpages,0) AS ipages,
COALESCE(CEIL((c2.reltuples(datahdr-12))/(bs-20::FLOAT)),0) AS iotta -- very rough approximation, assumes all cols
FROM (
SELECT
ma,bs,schemaname,tablename,
(datawidth+(hdr+ma-(CASE WHEN hdr%ma=0 THEN ma ELSE hdr%ma END)))::NUMERIC AS datahdr,
(maxfracsum(nullhdr+ma-(CASE WHEN nullhdr%ma=0 THEN ma ELSE nullhdr%ma END))) AS nullhdr2
FROM (
SELECT
schemaname, tablename, hdr, ma, bs,
SUM((1-null_frac)avg_width) AS datawidth,
MAX(null_frac) AS maxfracsum,
hdr+(
SELECT 1+COUNT(*)/8
FROM pg_stats s2
WHERE null_frac<>0 AND s2.schemaname = s.schemaname AND s2.tablename = s.tablename
) AS nullhdr
FROM pg_stats s, (
SELECT
(SELECT current_setting('block_size')::NUMERIC) AS bs,
CASE WHEN SUBSTRING(v,12,3) IN ('8.0','8.1','8.2') THEN 27 ELSE 23 END AS hdr,
CASE WHEN v ~ 'mingw32' THEN 8 ELSE 4 END AS ma
FROM (SELECT version() AS v) AS foo
) AS constants
GROUP BY 1,2,3,4,5
) AS foo
) AS rs
JOIN pg_class cc ON cc.relname = rs.tablename
JOIN pg_namespace nn ON cc.relnamespace = nn.oid AND nn.nspname = rs.schemaname AND nn.nspname <> 'information_schema'
LEFT JOIN pg_index i ON indrelid = cc.oid
LEFT JOIN pg_class c2 ON c2.oid = i.indexrelid
) AS sml
ORDER BY wastedbytes DESC
Pour changer la page de log et faire disparaitre des données privées "serveurs"
find /usr/local/etc/squid/errors -type f -print0 -name ERR_INVALID_URL | xargs -0 sed -i '' 's/%W//
/usr/local/sbin/squid -k reconfigure

par exemple :
iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 22 -j DROP
iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 80,443 -j DROP

Quid si on se trompe de plaque ?
Packages of GlusterFS for Debian are available here from the Gluster Community...
Add the GPG key to apt:
wget -O - https://download.gluster.org/pub/gluster/glusterfs/3.13/rsa.pub | apt-key add -
Add the source (s/amd64/arm64/ as necessary):
echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/3.13/LATEST/Debian/jessie/amd64/apt jessie main > /etc/apt/sources.list.d/gluster.list
or:
echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/3.13/LATEST/Debian/stretch/amd64/apt stretch main > /etc/apt/sources.list.d/gluster.list
echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/3.13/LATEST/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.list
Update package list:
apt-get update
Install:
apt-get install [ glusterfs-server | glusterfs-client ]
C'est facile pourtant !
sudo -u www-data php /var/www/nextcloud/updater/updater.phar
et BIM !

À voir comment ça se décante cette histoire de plainte contre N.Hulot. Je note que le journal ne semble pas d'un bord politique neutre (objectivité ? ).

Ho mon dieu... Je viens de voir le joueur du grenier et il parle de "ça ".
Un film starwars plus que honteux.
"Le tournage a eu lieu quelques semaines après l'accident de voiture de Mark Hamill[7],[8] qui lui valut une paralysie faciale, d'où la quasi-absence d'expression sur son visage[9] et l'excès de maquillage destiné à dissimuler ses cicatrices."