Set a proxy and carry over the values to sudo

If you’ve ever been behind an enterprise proxy server and needed to reach things on the outside, you probably know how frustrating it is to try and just use your normal commands for something as simple as a wget. So, to get started you will need to know the URL and port for your proxy server, but once you have that, start by editing your .bashrc and add the following (setting proxyhost, the port, and adjusting “no_proxy” as appropriate)…

function proxyon(){
     echo -n "password (for proxy): "
     read -es password
     export http_proxy="http://$USER:$password@proxyhost.com:8181/"
     export HTTP_PROXY=$http_proxy
     export https_proxy=$http_proxy
     export HTTPS_PROXY=$http_proxy
     export ftp_proxy=$http_proxy
     export rsync_proxy=$http_proxy
     export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,.domain.com"
     echo -e "\nProxy environment variable set."
}
function proxyoff(){
     unset HTTP_PROXY
     unset http_proxy
     unset HTTPS_PROXY
     unset https_proxy
     unset FTP_PROXY
     unset ftp_proxy
     unset RSYNC_PROXY
     unset rsync_proxy
     echo -e "\nProxy environment variable removed."
}

# remove next line if you don't want to set proxy automatically on login
proxyon

Now you can turn your proxy on and off with the “proxyon” and “proxyoff” commands, but that doesn’t help you when you try to install something with yum or apt that requires sudo. To carry over the proxy values, you’ll need to “sudo visudo” and add the “Defaults” line like shown below…

###############################################
# DO NOT ADD ANYTHING FROM HERE TO END OF FILE #
#
#includedir   /etc/sudoers.d
#
# DO NOT ADD ANYTHING ABOVE THIS LINE###########
Defaults env_keep = "http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ftp_proxy"

… and now, hopefully you are all set.

Like this? Consider joining my mailing list, or at least using my affiliate link when buying from Amazon 🙂

You or someone you know looking to buy or sell?

Configure a Static IP in Ubuntu 18.04

As with all things Linux there’s a million ways to do things, and every brilliant release comes up with a new way to do the same old things in a “better” way. Can you tell I’m be sarcastic yet? Good.

Anyway, after spending over an hour trying to get a freakin static IP on my desktop box I thought I’d share in case it saved anyone hours of their life.

My simple goal was to provide a static IP. Nothing more. Nothing less. Well, the “better” way of doing it now appears to be with “netplan”, and unless you enjoy banging your head against the wall, just create/edit this file and replace with the network interface (enp3s1), IP (192.168.20.55) and gateway (192.168.20.1) of your choice (this config appears to use the DNS servers from the router w/ DHCP turned on). Oh yeah, and don’t bother with the GUI based configuration tool, because apparently they’re not connected at all, and using this will force the config from this file (you’ve been warned and saved hours)

sudo nano /etc/netplan/01-networkd.yaml

# this is the actual file content
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s1:
      dhcp: no
      addresses: [192.168.20.55/24]
      gateway4: 192.168.20.1
Like this? Consider joining my mailing list, or at least using my affiliate link when buying from Amazon 🙂

You or someone you know looking to buy or sell?

Update modification timestamp on DB2 table automatically

Ever want to update your modification timestamp field any time an update is made to the row without having to add application logic? Well, DB2 makes it relatively painless…

alter table XX.MY_TABLE add column last_updated_ts timestamp not null
generated by default for each row on update as row change timestamp

Check out these resources for additional information…

  • https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.admin.dbobj.doc/doc/c0051498.html
  • https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000888.html
Like this? Consider joining my mailing list, or at least using my affiliate link when buying from Amazon 🙂

You or someone you know looking to buy or sell?