Skip to content

Instantly share code, notes, and snippets.

@aedm
Last active November 5, 2019 09:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aedm/f6c0630e150e214ec7e4c0f3c8ac85d8 to your computer and use it in GitHub Desktop.
Save aedm/f6c0630e150e214ec7e4c0f3c8ac85d8 to your computer and use it in GitHub Desktop.
How to cook a giraffe

How to cook a giraffe

Oneliners I somehow found useful.

Docker

Docker container IP

Linux

docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongo docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

Windows

docker ps -aq | %{docker inspect -f '{{.Name}} - {{ .NetworkSettings.Networks.bridge.IPAddress }}' $_}

Docker get container shell

docker exec -i -t container /bin/sh

Docker remove all unused images

docker system prune -af

Run docker in docker

docker run --privileged -v d:/develop/docker:/dockerhost -v d:/develop/minimeteor:/minimeteor --name dind -d -it docker:dind

Docker clean everything

docker system prune -af

Remove ephemeral containers (name is abc_xyz)

PS> docker rm -f (docker ps -a | sls -Pattern '([a-z]+_[a-z]+)$' -AllMatches | % {$_.Matches} | % {$_.Value})

Linux

Show sizes of hidden folders:

du -sch .[!.]* * |sort -h

Linux localhost IP

ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

apt sources list

apt-key list

Remove apt source

sudo apt-key del 2C52609D

List of all installed apt packages

apt list --installed

MongoDB

MongoDB startup arguments

> use admin
> db.runCommand({getCmdLineOpts:1})

Start MongoDB docker image:

docker run --restart always -d --name mongo -p 127.0.0.1:27017:27017 mongo --replSet="rs0"

Then in Mongo shell:

> rs.initiate()

Connect to MongoDB container from shell

mongo `docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress }}' mongo

MongoDB live connections by app name

db.currentOp(true).inprog.forEach(d => {if (d.appName === "StreamTest") printjson(d.client)})

Get MongoDB validation rules

db.getCollectionInfos({name: "myCollection"})

Restore MongoDB archive

mongorestore --port 3001 --archive=<mongodump-file> --nsInclude "srcCollection.*" --nsFrom="srcCollection.$c$" --nsTo="targetCollection.$c$" --verbose

Robo 3T show complete result table, not just 50 rows

(DBQuery.shellBatchSize = 10000) && db.getCollection('testCollection').aggregate([{$group: {_id: "$partitionId", count: {$sum: 1}}}]);

Windows

What can wake up the Windows machine

powercfg /devicequery wake_armed (needs Admin)

Scheduled wake timers

powercfg -waketimers

What prevents Windows from sleeping

powercfg -requests

What caused a wake up

PS> Get-WinEvent -Providername Microsoft-Windows-Power-Troubleshooter -MaxEvents 5 | Format-List TimeCreated,Message (needs Admin)

Find process that occupies a port

PS> Get-Process -Id (Get-NetTCPConnection -LocalPort 3009).OwningProcess

Nginx

Websockets settings

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}

server {
    server_name myserver.com;

    listen 443 ssl;

    access_log            /var/log/nginx/got/access.log;

    location / {
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_set_header Upgrade $http_upgrade; #for websockets
      proxy_set_header Connection $connection_upgrade;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://127.0.0.1:5001;
      proxy_read_timeout  90;

      proxy_redirect      http://127.0.0.1:5001 https://myserver.com;
    }

    ssl_certificate /etc/letsencrypt/live/myserver.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/myserver.com/privkey.pem; # managed by Certbot
}

server {
    listen 80;
    server_name myserver.com;
    return 301 https://$host$request_uri;
}

Meteor

Give admin rights to a user (Mongo shell)

db.users.update({"emails.address": "xy@gmail.com"}, {$set: {roles: {"__global_roles__": ["admin"] }}});

Users' list (Mongo shell):

db.users.find({}, {"emails.address": 1, roles: 1});

Meteor profiling

set METEOR_PROFILE=1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment