Skip to content

Instantly share code, notes, and snippets.

View StudioEtrange's full-sized avatar
💫

StudioEtrange StudioEtrange

💫
View GitHub Profile
@StudioEtrange
StudioEtrange / show-cron-jobs.sh
Created January 28, 2021 02:20 — forked from myshkin-uk/show-cron-jobs.sh
A bash script to list all cron tasks on a computer.
#!/bin/bash
# This script is designed to work only with recent bash implementations, not ash/dash etc.
# @file show-cron-jobs.sh
#
# published at:
# https://gist.github.com/myshkin-uk/d667116d3e2d689f23f18f6cd3c71107
#
# @NOTE DGC 2-Sep-2019
# There is one comment there that the script doesn't run as expected.
@StudioEtrange
StudioEtrange / count_all_crontab.sh
Created January 27, 2021 19:16
count number of active task inside of all user crontab
# count number of active task inside of all user crontab
# sample with excluding a string containing "str"
for c in $(sudo ls /var/spool/cron); do sudo crontab -u $c -l 2>/dev/null | grep -v -e '^$' | grep -v -e '^#' | grep -v "crontab;" | grep -v "str"; done | wc -l
# launch a shell with an empty env
# https://unix.stackexchange.com/a/291913
env -i bash --noprofile --norc
# source var file and show a specific var
env -i bash --noprofile --norc -c ". somefile.sh; echo $VAR;"
# backup/restore env
# https://unix.stackexchange.com/questions/284382/export-save-and-import-source-shell-variables
@StudioEtrange
StudioEtrange / docker-compose-traefik-route-to-url.yml
Last active January 31, 2022 17:11
traefik sample for route to an external URL - add a blog.mondomain.com route to http://blog:4000
traefik:
image: traefik:v2.1.6
container_name: traefik
volumes:
- "traefik.enable=true"
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik-conf.yml:/etc/traefik/traefik.yml
- ./traefik-services.yml:/etc/traefik/services.yml
labels:
- "traefik.http.routers.blog.entrypoints=web_main"
@StudioEtrange
StudioEtrange / bash_debug_time.sh
Last active January 24, 2020 04:51
Debug execution time of bash script
# Solutions from https://stackoverflow.com/a/20855353
# SOLUTION 1 : analyse at the current level of execution (do not step into code)
# get https://www.f-hauri.ch/vrac/cours_truc-et-astuces_2012-04-03/add/elap.bash-v2
@StudioEtrange
StudioEtrange / ssh_key_based_authentification.md
Last active March 26, 2025 19:53
Configure ssh key based authentification
@StudioEtrange
StudioEtrange / jupyterlab-spark.md
Last active July 16, 2019 05:14
Jupyterlab and spark

To invoke JupyterLab with Spark capabilities there are two ways. An ad hoc method is to just state on the command line that JupyterLab should use pyspark as kernel. For instance starting JupyterLab with Python 3.6 (needs to be consistent with your Spark distribution), 20 executors each having 5 cores might look like this:

PYSPARK_PYTHON=python3.6 PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook --no-browser --port=8899" /usr/bin/pyspark2 --master yarn --deploy-mode client --num-executors 20 --executor-memory 10g --executor-cores 5 --conf spark.dynamicAllocation.enabled=false

In order to be able to create notebooks with a specific PySpark kernel directly from JupyterLab, just create a file ~/.local/share/jupyter/kernels/pyspark/kernel.json holding:

{
 "display_name": "PySpark",
 "language": "python",
@StudioEtrange
StudioEtrange / bash_var_defined_undefined.sh
Created March 31, 2019 21:18
bash var defined / undefined
#https://stackoverflow.com/a/10965292
[ -n "$var" ] && echo "var is set and not empty"
[ -z "$var" ] && echo "var is unset or empty"
[ "${var+x}" = "x" ] && echo "var is set" # may or may not be empty
[ -n "${var+x}" ] && echo "var is set" # may or may not be empty
[ -z "${var+x}" ] && echo "var is unset"
[ -z "${var-x}" ] && echo "var is set and empty"
@StudioEtrange
StudioEtrange / Copy preserve attributes
Last active February 2, 2019 10:05
Copy preserve attributes
Copy FOLDER_1 into PATH_B and preserve all attributes
sudo rsync -avihXP --info=progress2 --stats /PATH_A/FOLDER_1/ /PATH_B/
* use --dry-run to test
* for encoding char problems between Mac/Linux : https://serverfault.com/questions/638316/rsync-iconv-option-on-mac-not-working-sync-from-remote-linux-server-to-local
** rsync initiated from Mac : --iconv=utf-8-mac,utf-8
** rsync initiated from Linux : --iconv=utf-8,utf-8-mac
@StudioEtrange
StudioEtrange / smtp_gmail
Created November 28, 2018 00:17
A note about using gmail as a relay
A note about using gmail as a relay
Gmail by default does not allow email clients that don't use OAUTH 2 for authentication (like Thunderbird or Outlook).
First you need to enable access to "Less secure apps" on your google settings.
Serveur de courrier entrant (IMAP) imap.gmail.com
SSL requis : oui
Port : 993