Tar: Auto detecting the compression type

The Linux tar command has a cool feature to auto-detect the file compression based on the archive suffix.

-a, --auto-compress

use archive suffix to determine the compression program

This allows you to change file compressions by just changing the archive suffix:

tar -cvpaf /tmp/backup.tar.gz ~/
tar -cvpaf /tmp/backup.tar.bz2 ~/
tar -cvpaf /tmp/backup.tar.xz ~/

This saves you having to specify -z -j or -J respectively.

Leave A Reply

Disabling an ethernet port via SNMP

Interacting with ethernet ports on an SNMP device is done primarily with two sections of the SNMP tree. IF-MIB::ifOperStatus is the current layer 1 status of the port (i.e. is the port linked or not) and IF-MIB::ifAdminStatus is whether the port is administratively shutdown.

If you want to shutdown an ethernet port on an SNMP enabled device you need to set IF-MIB::ifAdminStatus to integer 2 (down), and conversely setting it to integer 1 (up) will enable the port again.

snmpset -v 2c -c community 192.168.5.1 IF-MIB::ifAdminStatus.5 i 2
Leave A Reply

Books of 2017

List of books I read in 2017. Also see the list of 2016. The date indicated denotes the date I started reading the book.

2017-01-05 - American Gods - 592 pages
2017-01-14 - Different Seasons - 527 pages
2017-01-25 - The Three-Body Problem - 399 pages
2017-01-30 - Wolverine: Days of Future Past - 3 Comics
2017-01-31 - Rogue One: A Star Wars Story - 319 pages
2017-02-04 - Heroes Anonymous - 6 Comics
2017-02-06 - Funny Girl - 452 pages
2017-02-08 - Wolverine: Xisle - 5 Comics
2017-02-09 - All Star Superman - 12 Comics
2017-02-10 - Old Man Logan - 7 Comics
2017-02-11 - X-Men: Days of Future Past - 184 pages
2017-02-11 - Ultimate Iron Man - 5 Comics
2017-02-13 - Heaven Cent - 324 pages
2017-02-13 - Pet Sematary - 374 pages

Leave A Reply

Linux: Fedora 25 major package versions

Fedora 25 has these versions of some core packages:

Package Version
Apache 2.4.23
GCC 6.2.1
Kernel 4.8.6
Perl 5.24.0
PHP 7.0.12
Vim 7.4.1989
Leave A Reply

Speed of various computer components

A CPU cycle can be a quarter of a nanosecond.
A read from RAM is about 60 nanoseconds.
A read from a relatively fast modern SSD is 20 microseconds (20,000 nanoseconds).
A read from a slow disk is 10 milliseconds (10,000,000 nanoseconds).

Borrowed and summarized from Leah Hanson

Leave A Reply

Cisco: Monitor temperature via SNMP

I need to monitor the temperature of some Cisco equipment via SNMP. Using this guide as a reference I was able configure Nagios to monitor the ambient (inlet) temperature in our data center.

First you'll need to find the sensor's ID number based on the description here:

snmpwalk -v 2c -On -c public router.domain.com .1.3.6.1.2.1.47.1.1.1.1.2

You should get a long list of various parts of your router. The last section of the OID is the ID of that particular sensor. Usually they are in the thousands. After that you look at another section of the SNMP tree to gather the actual temperature:

snmpget -v 2c -On -c public router.domain.com .1.3.6.1.4.1.9.9.91.1.1.1.1.4.XXXX

or view all of the sensors:

snmpwalk -v 2c -On -c public router.domain.com .1.3.6.1.4.1.9.9.91.1.1.1.1.4
Leave A Reply

Linux: Remote desktop client

For a long time I have used rdesktop on Linux to connect to remote Windows boxes. Redhat is deprecating rdesktop because it does not the support modern encryption technologies that Window uses. Instead they are recommending that users switch to xfreerdp. Here is the syntax you'll need to use to connect to a remote Windows server:

xfreerdp /u:Administrator /v:10.1.8.93
Leave A Reply

Linux: Build a base VM image

When a new version of a distro comes out I like to build a base VM image that I can use later to turn up new VMs quicker. Here are the steps I use on a CentOS or Fedora VM image:

  1. Install minimal system via GUI
  2. Install default packages
  3. Setup Vim config
  4. Disable/remove SELinux
  5. Setup default bash prompt
  6. Remove SSH keys
    1. rm /etc/ssh/*key*
    2. New keys will be generated on boot
  7. Set generic hostname
  8. Remove mac address line from network config
  9. Remove chrony
  10. Install/enable NTP
  11. Set grub default boot time to two seconds
  12. Disable Firewalld
  13. Enable iptables
  14. Shutdown VM and archive the disk image
Leave A Reply

Linux: write a network image to an SD card

If you have a fast network connection you can read an ISO directly from the Internet and write to a flash drive, or SD card. Just pipe curl to dd (requires root) and you're done.

curl ftp://mirror.web-ster.com/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso | sudo dd of=/dev/sde bs=1M
Leave A Reply

RSYSLOG: Check the configuration

If you want to verify the syntax of your rsyslog configuration before you restart the process use the following command.

rsyslogd -N1

You will get some textual output as well an appropriate exit code.

Leave A Reply

OpenSSL: Generate self-signed certificates

OpenSSL can generate self-signed SSL certificates easily. Just run the following command:

openssl req -x509 -nodes -sha256 -days 3650 -newkey rsa:2048 -keyout domain.key -out domain.crt
Leave A Reply

Postfix: relay local mail through a remote SMTP server

You can configure Postfix to deliver mail by relaying it through your ISPs mail server instead trying to handle it yourself. This can be helpful to work around IP blocks, reverse DNS limitations, spam blocks, etc. Simply add a relayhost directive to your /etc/postfix/main.cf config file like this:

relayhost = mail.domain.com

You can also setup SMTP authentication if you SMTP server requires it.

Leave A Reply

tcpdump: Capture IPv6 router advertisements

If you want to capture and display IPv6 router advertisements with tcpdump you can use this command:

tcpdump -v -i em1 icmp6 and 'ip6[40] = 134'
Leave A Reply

Cisco: Change IPV6 SLAAC lifetimes

The default IPV6 valid lifetime for a SLAAC configured address is 30 days, and preferred lifetime is 7 days. You can change these lifetimes with this command:

conf t
int vlan 568
ipv6 nd prefix default 86400 14400

This can be used to effectively "time-out" an auto-configured address.

Leave A Reply

Perl: regular expression to check for ANSI sequences

I needed to test if a given string contains ANSI color codes. Here is the regexp I settled on to check for that:

my $ansi_color_regex = qr/\e\[[0-9]{1,3}(?:;[0-9]{1,3}){0,3}[mK]/;
if ($str =~ /$ansi_color_regex/) {
    print "String has some ANSI in it\n";
}

Alternately you can capture the color numbers with this regex:

my $ansi_color_regex = qr/(\e\[([0-9]{1,3}(;[0-9]{1,3}){0,3})[mK])/;
Leave A Reply