Site has been moved over to tucuche-consulting.com.
Content is still free, but you may contact me for consulting services.
Woblag: A bunch of Linux/Moodle/OpenSource stuff.
Content moved to tucuche-consulting.com as of April 2019
Wednesday, April 17, 2019
Wednesday, October 31, 2018
Mac Terminal timeout with SSH - Solved!
If you're like me and have a bajillion things open on your machine, it's a real PITA to have a SSH session timing out after a couple minutes of inactivity. Maybe in certain scenarios this is beneficial, but when I'm on my personal laptop at home, it's not a security risk.
At any rate, it's a really simple fix and it requires the creation/editing of a local user ssh config file.
Add lines:
Save and Exit.
Just tweak some permissions and you'll be good to go.
Details: http://www.kehlet.cx/articles/129.html
At any rate, it's a really simple fix and it requires the creation/editing of a local user ssh config file.
vi~/.ssh/config
Add lines:
Host * ServerAliveInterval 60
Save and Exit.
Just tweak some permissions and you'll be good to go.
chmod 600 ~/.ssh/configThat's pretty much it.
Details: http://www.kehlet.cx/articles/129.html
Monday, February 26, 2018
Troubleshooting Cron (Cron not working)
I had a very curious case on a developmental server where after a couple weeks, I realized the cronjobs were not running. The crontab was fine, the scripts and permissions were fine and could be manually executed. Seems like the issue was cron itself.
It took a bit of digging, and there was this obscure line highlighted in the man page. Much thanks to here for pointing me in the right direction.
https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working
Two things were wrong here.
1. The crond was stalled. Quietly. Check this first and start it if it's stopped. Even if it's running, consider restarting the service.
2. Crontab needs an empty/newline at the end of the file in order to load.
My version of crontab does not match the one in the article (I'm on CentOS 6); but the newline was missing at the end. Oddly enough all the other servers that were fine had this blank/newline. Guess it's pretty important, if not documented/deprecated.
At any rate, cron performs important user functions, so consider checking it from time to time.
--EOF
It took a bit of digging, and there was this obscure line highlighted in the man page. Much thanks to here for pointing me in the right direction.
https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working
Two things were wrong here.
1. The crond was stalled. Quietly. Check this first and start it if it's stopped. Even if it's running, consider restarting the service.
service crond status
service crond restart
2. Crontab needs an empty/newline at the end of the file in order to load.
My version of crontab does not match the one in the article (I'm on CentOS 6); but the newline was missing at the end. Oddly enough all the other servers that were fine had this blank/newline. Guess it's pretty important, if not documented/deprecated.
At any rate, cron performs important user functions, so consider checking it from time to time.
--EOF
Labels:
CentOS,
CentOS 6,
cron,
crontab,
troubleshooting
Tuesday, February 21, 2017
Reset/Update NTP Server
There was an older machine on the network, with an outdated local NTP configuration, and the time was off by a couple minutes. This post shows how to perform a quick update and force sync. Use at your own risk for time sensitive applications.
1. Update the NTP client configuration.
service ntpd stop
vi /etc/ntp.conf
Find Lineservice ntpd start
server 192.168.x.x
Change to new server
Save and quit.
2. Force synchronization
date ; service ntpd stop ; ntpdate 192.168.1.1 ; service ntpd start ; date
In one fell swoop it will give you the current time, stop the service, force an update, start the service and give you the updated time.
Tue Feb 21 11:40:44 AST 2017
Shutting down ntpd: [ OK ]
21 Feb 11:44:28 ntpdate[10457]: step time server 192.168.x.x offset 223.794778 sec
Starting ntpd: [ OK ]
Tue Feb 21 11:44:28 AST 2017
That's it. All updated.
Labels:
CentOS 6,
Linux,
ntp,
ntpdate,
sync ntp,
update config,
update ntp
Friday, September 30, 2016
Installing Docker on CentOS 7 (behind corporate proxy)
As part of my research into Percona's new Open Source offering, their Percona Monitoring and Management platform, I realized that a core component is provided via a Docker container. Now I've previously played around with docker on a small scale, but this needed to be done on an actual server environment on the corporate network. There was one little item that caused a brief moment of grief with the proxy, but I eventually sorted it out.
Docker Engine installation on CentOS7
0. Login as root
1. Update machine
3. Install the Docker Engine Package
4. Start the Daemon
5. Set to run at boot
6. Verify Operation with simple test
**Note: if you're behind a proxy, you may notice an error
... dial tcp xx.xx.xx.xx:53: getsockopt: connection refused
You may need to do the following
a. create a systemd drop-in directory for the docker service
b. create a proxy configuration file
...in the directory just created, in my case I needed both an HTTP and an HTTPS proxy to get it to work
Add the following (one line)
[Service]
Environment="HTTP_PROXY=http://your.proxy.ip.addr:port/" "HTTPS_PROXY=http://your.proxy.ip.addr:port/"
Save and exit
c. flush changes
d. Verify that the configuration has been loaded:
systemctl show --property=Environment docker
e. Restart Docker:
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
Docker Engine installation on CentOS7
0. Login as root
1. Update machine
yum update2. Add the Docker yum repo
tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF
3. Install the Docker Engine Package
yum install docker-engine
4. Start the Daemon
systemctl start docker
5. Set to run at boot
systemctl enable docker
6. Verify Operation with simple test
docker run hello-world
**Note: if you're behind a proxy, you may notice an error
... dial tcp xx.xx.xx.xx:53: getsockopt: connection refused
You may need to do the following
a. create a systemd drop-in directory for the docker service
mkdir /etc/systemd/system/docker.service.d
b. create a proxy configuration file
...in the directory just created, in my case I needed both an HTTP and an HTTPS proxy to get it to work
vi /etc/systemd/system/docker.service.d/http-proxy.conf
Add the following (one line)
[Service]
Environment="HTTP_PROXY=http://your.proxy.ip.addr:port/" "HTTPS_PROXY=http://your.proxy.ip.addr:port/"
Save and exit
c. flush changes
systemctl daemon-reload
d. Verify that the configuration has been loaded:
systemctl show --property=Environment docker
e. Restart Docker:
systemctl restart dockerVerify Operation with simple test (works, yay!)
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
Labels:
CentOS,
CentOS 7,
Docker,
Docker Proxy,
http proxy,
https proxy,
proxy,
systemd
Wednesday, August 17, 2016
BootCamp: OSX (El Capitan) and Windows 10
The only reason I'm posting this is because I was stuck for a few hours and the internet had tons of conflicting fixes for this that led me nowhere. Still stuck with GPT errors and a whole lot of general bollocks. For some reason this refused to work on the USB port on the left of my macbook and for reasons known only to Job's & Gates' lovechild, worked on the one located on the right. Sorcery.
This is what worked for me, I can't guarantee that it will work for you and I'm by no means a Mac expert - so use at your own risk. Caveat emptor. No screenshots because of reasons.
What you need:
1. MacBook or other Mac Computer that is listed here: https://support.apple.com/en-us/HT204990
2. Windows 10 64-bit ISO.
3. A fresh USB stick, 8G or more would be fine.
4. At least 100GB free on your Mac for a 64GB Windows install.
What's next?
0. Update your mac if needed.
1. Run bootcamp and select the two options
2. Exit bootcamp. Because of reasons.
3. Fire up bootcamp and this time select the option to install (only).
4. Drag a partition size that suits you, I went with 64GB - then click Continue
5. Magic happens then the computer would probably reboot right into OSX. Manually reboot and this time hit the Option Key, Feel free to bang away at it. (Disclaimer: Do not bang away at it.)
6. When presented with boot options, please ignore the Windows option. Select UEFI boot.
7. Oh looky, run through the windows install until you get to the Disk screen. At this point choose your desired windows partition created in step 4 and then click format. The next button magically appears and you should now be able to proceed with installation.
8. Magic happens again, then a couple reboots later and Win 10 is done. Grab another beer. or three.
9. The next time you bring up the dual boot screen, Only OSX and Windows would be presented and the UEFI option is gone.
10. Happy dualbooting. Hell you'd be happy too after six beers.
This is what worked for me, I can't guarantee that it will work for you and I'm by no means a Mac expert - so use at your own risk. Caveat emptor. No screenshots because of reasons.
What you need:
1. MacBook or other Mac Computer that is listed here: https://support.apple.com/en-us/HT204990
2. Windows 10 64-bit ISO.
3. A fresh USB stick, 8G or more would be fine.
4. At least 100GB free on your Mac for a 64GB Windows install.
What's next?
0. Update your mac if needed.
1. Run bootcamp and select the two options
- Create a Windows 7 or later setup disk
- Download the latest windows support software from Apple1.1. Click Continue, grab a beer. or three. This takes a while.
2. Exit bootcamp. Because of reasons.
3. Fire up bootcamp and this time select the option to install (only).
4. Drag a partition size that suits you, I went with 64GB - then click Continue
5. Magic happens then the computer would probably reboot right into OSX. Manually reboot and this time hit the Option Key, Feel free to bang away at it. (Disclaimer: Do not bang away at it.)
6. When presented with boot options, please ignore the Windows option. Select UEFI boot.
7. Oh looky, run through the windows install until you get to the Disk screen. At this point choose your desired windows partition created in step 4 and then click format. The next button magically appears and you should now be able to proceed with installation.
8. Magic happens again, then a couple reboots later and Win 10 is done. Grab another beer. or three.
9. The next time you bring up the dual boot screen, Only OSX and Windows would be presented and the UEFI option is gone.
10. Happy dualbooting. Hell you'd be happy too after six beers.
Labels:
Boot Camp,
BootCamp,
Dual Boot,
El Capitan,
GPT error,
Mac,
OSX,
Windows,
Windows 10
Tuesday, July 12, 2016
Using Grep to search for a string inside a file
Simple story here really.
I had a borked config somewhere inside my /etc/ folder that was throwing some application errors. It's a development machine with poor documentation so I had to try to figure out where the typo happened.
Grep is a simple, but incredibly powerful command that took care of this quite easily. The flags I used provided the filenames that contain the matching string as well as the line number where the string is matched. Helpful for fixing or tweaking some borked config or code.
Usage is quite simple:
grep -inr "badconfigurationstring" /searchdirectory
the flags are as follows;
-i = ignore case sensitivity
-n = print line number of matching string
-r = recursively read all files under search directory
more info at the grep man page: http://linux.die.net/man/1/grep
--end.
I had a borked config somewhere inside my /etc/ folder that was throwing some application errors. It's a development machine with poor documentation so I had to try to figure out where the typo happened.
Grep is a simple, but incredibly powerful command that took care of this quite easily. The flags I used provided the filenames that contain the matching string as well as the line number where the string is matched. Helpful for fixing or tweaking some borked config or code.
Usage is quite simple:
grep -inr "badconfigurationstring" /searchdirectory
the flags are as follows;
-i = ignore case sensitivity
-n = print line number of matching string
-r = recursively read all files under search directory
more info at the grep man page: http://linux.die.net/man/1/grep
--end.
Subscribe to:
Posts (Atom)