<!doctype html>
<title>Site Maintenance</title>
<style>
body { text-align: center; padding: 150px; }
h1 { font-size: 50px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
article { display: block; text-align: left; width: 650px; margin: 0 auto; }
a { color: #dc8100; text-decoration: none; }
a:hover { color: #333; text-decoration: none; }
</style>
<article>
<h1>We’ll be back soon!</h1>
<div>
<p>Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need to you can always <a href="mailto:#">contact us</a>, otherwise we’ll be back online shortly!</p>
<p>— The Team</p>
</div>
</article>
Parfois, après avoir été déco, il arrive que mon tmux 'freeze' : je peux attach, detach, mais je ne peux rien faire dans les window
Apparement cela vient de mon client qui s'est mal détaché. Pour régler le problème :
tmux list-clients
tmux detach-client
En gros pour dockeriser une app symfony pre 3.2 (ET 2.7 minimum) :
sed -i "s/PLACEHOLDER/PassEnv $(env|grep -Po 'SYMFONY__[^=]+'| paste -s -d' ')/" test.file
A partir de symfony 3.2 c'est beaucoup plus facile car les variables d'environnements sont directement accessibles dans les fichiers de configuration
aws dynamodb scan --table-name foo
aws dynamodb delete-item --table-name foo --key "{\"id\":{\"S\":\"$id\"}}"
Un lock simple avec un seul redis master :
SET lock_name random_value NX EX 250
NX : crée seulement si existe
EX : timeout en seconde
Retirer le lock seulement en donnant la valeur de creation du lock
Dans le cas de plusieurs serveurs redis pas du tout synchronisés, c'est plus compliqué (distributed lock) --> https://redis.io/topics/distlock
M'enfin c'est quand meme plus simple d'utiliser une queue (RMQ, SQS..) quand on peut
On peut "remettre" ou plutot rendre disponible de nouveau un message SQS en changeant sa visibility timeout à 0
aws s3 ls s3://bucket/path/ --recursive --summarize | grep "Total Objects:"
Truc con : on ne peut pas utiliser le résultat du get-repository-policy dans le set-repository-policy pour cloner.
Il faut au passage enlever les \n qui trainent dans la réponse
python3 log to file AND stdout
import logging
logging.basicConfig(handlers=[logging.FileHandler('/var/log/runner/process1.log'),logging.StreamHandler()],format='%(asctime)s %(levelname)s %(message)s',level=logging.INFO)
logging.info('foo')
Encore mieux pour supporter le logrotate sans copytruncate :
import logging.handlers
logging.basicConfig(handlers=[logging.handlers.WatchedFileHandler('/var/log/worker/worker1.log'),logging.StreamHandler()],format='%(asctime)s %(levelname)s %(message)s',level=logging.INFO)
/var/log/worker/*.log {
monthly
rotate 12
compress
delaycompress
missingok
notifempty
create 644 root root
}
Python 2:
import logging as loggingg
logging = loggingg.getLogger('simple_example')
logging.setLevel(loggingg.INFO)
formatter = loggingg.Formatter('%(asctime)s %(levelname)s %(message)s')
console_handler = loggingg.StreamHandler()
console_handler.setLevel(loggingg.INFO)
console_handler.setFormatter(formatter)
file_handler = loggingg.FileHandler('/var/log/worker/worker3.log')
file_handler.setLevel(loggingg.INFO)
file_handler.setFormatter(formatter)
logging.addHandler(console_handler)
logging.addHandler(file_handler)
:~$ docker -H tcp://10.73.204.73:2375 ps
Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.19)
:~$ DOCKER_API_VERSION=1.19 docker -H tcp://x.x.x.x:xxxx ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
wtf?
cd dir
time perl -e 'for(<*>){((stat)[9]<(unlink))}'