We ran into an issue at work recently, when trying to deploy a spring boot based micro service. The application included some libraries that were downloaded by the application using maven during runtime.
The environment that this application was running in had controlled access to the Internet. We configured the jvm parameters using the following parameters
-Dhttp.useProxy=true -Dhttp.proxyHost=PROXY_SERVER_NAME -Dhttp.proxyPort=xxxx
when running the application, we were getting failed dependency errors that stated something like this
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact com.xxxxx.boot:xxxx
-boot-autoconfigure:pom:0.0.1-SNAPSHOT from/to central (http://repo1.maven.org/maven2/): Connection refused at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:334)
Lot of head scratching, because the server running the application had connection to the proxy server and the JVM parameters were accurate.
Finally, we figured out Maven doesn’t use the JVM startup parameters and had to have proxy access configured specifically. There are two ways to do this
- Add an environment variable called “MAVEN_OPTS” and pass the proxy server settings.. something like this
set MAVEN_OPTS= -Dhttp.proxyHost=PROXY_SERVER_NAME -Dhttp.proxyPort=xxxx
- Configure the proxy server settings in Maven’s settings.xml… something like this
Command parameters for varnishlog to view the backend server that is processing the request. In this particular case, I wanted to see the request URL and backend server for any responses with HTTP code 401 (unauthorized access)
sudo varnishlog -i BackendOpen,BereqURL -q "BerespStatus == 401"
Found this good article by Mark Huot regarding using curl to check websocket servers at http://www.thenerdary.net/post/24889968081/debugging-websockets-with-curl
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: echo.websocket.org" -H "Origin: http://www.websocket.org" http://echo.websocket.org
On a server that is running either the FTP client on server, you can capture the ftp password using tcpdump by
tcpdump -A port ftp
I learned today that “laser” is an acronym that stands for light … amplification by … stimulated … emission of … radiation.
Who knew? 🙂
Just for my records
grep "WORD\|ANOTHER\|NEITHER" string
searches for either “WORD” or “ANOTHER” or “NEITHER” in string.
If you are using a Linux system that uses yum for package management (like Fedora, Centos, RHEL), you can use the following command to find out which package contains a file. This is useful when you want to figure out which package to install. For example, dig (DNS utility) doesn’t come pre-installed on the system. And running “sudo yum install dig” doesn’t do anything.
sudo yum whatprovides '*/dig'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
32:bind-utils-9.8.2-0.47.rc1.el6.x86_64 : Utilities for querying DNS name servers
Repo : base
Filename : /usr/bin/dig
breaking down the command options
whatprovides : Is used to find out which package provides some feature or file. Just use a specific name or a file-glob-syntax wildcards to list the packages available or installed that provide that feature or file.
Say you are using netstat to checl all established network connections on a windows machine (confirmed to work on windows 7+ and windows server 2008+) and want to find out how many connections you have, you can use
netstat -an | find "ESTABLISHED" | find /v /c ""
breaking down the command string
netstat -an : Uses netstat command to display all connections and listening ports (-a) and displays them in numerical form instead of resolving DNS or using common names (-n)
| : piping (passing) output of one command to the next one
find “ESTABLISHED” : Uses find command to filter out to just lines that contain the string “ESTABLISHED”‘
find /c /v “” : exclude blank lines (/v “”) and count the number of remaining lines (/c)
If you wanted to something similar in linux, you can use
netstat -an | grep "ESTABLISHED" | wc -l
Literally copying this post/note from a blog post by Nate Good http://nategood.com/quickly-add-and-edit-cookies-in-chrome
If you want to inset a cookie into a website request in Google Chrome, you can do it by launching developer tools (F12 in Windows) and typing the following in the console
If you want to search for a pattern at the end of a line, you can use
tail -f logfile | grep -v "0$"
breaking down the commands
tail -f : standard tail command. Continuous output to console as the file grows (or until it ends)
grep -v : -v command forces grep to show content that doesn’t match pattern
0$ : This regex is specifically looking for a 0 at the end of the line, which is denoted by $.