Archive for the ‘Programming’ Category
Today I’ve tried to use iKVM for IPMI from SuperMicro.
At first try my browser download the
.jnlp file and get “No Java runtime present …” when tries to feed it to the Java Web Start.
Installing JRE(7n15) from java.com had not solve that problem.
Problem was gone when after a quick search and dancing around solutions from can’t find JRE and Java for OS X I downgrade Java to version 1.6.0_41 (For Java versions 6 and below, Apple supplies their own version of Java. Java for OS X 2013-001) and execute these two commands:
$ defaults write com.apple.java.JavaPreferences WebComponentsEnabled -bool true
$ sudo ln -fs /System/Library/Frameworks/JavaVM.framework/Commands/javaws /usr/bin/javaws
The second thing you should check if the previous receipt is not working for you is the JavaWebComponentVersionMinimum variable value. Originally I found this solution here.
To verify the current value of JavaWebComponentVersionMinimum in your system execute the following:
$ sudo /usr/libexec/PlistBuddy -c "Read :JavaWebComponentVersionMinimum" /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist
You now can make a decision to delete or change this value by changing Read command to Delete or Write respectively.
Probably it will be a good idea not to write every script from a blank page, because the most scripts at the beginning contains the same information. like “what this pease of code does”, “who wrote it and when”, “default options declarations” and etc.
In following template I’ll define the most popular parts that all good scripts should contain. Also I figured out that adding --debug option is a very usefull thing that allows you to deep dive throught the code without extra manipulations.
Simple, clean, usefull:
# Execution frequency:
# Author: Name e-mail DD/MM/YYYY
ARGS=`getopt -o h --long help,debug -- “$@“`
eval set -- “$ARGS“
while true ; do
case “$1” in
-h| --help) usage; exit 0;;
--debug) set -x; shift;;
--) shift ; break ;;
*) echo “Internal error!“; usage; exit 1;;
Assume we have a 1000 files and we need to process each of them in a some way. File processing takes at least a 15 minutes. So, to process them all consistently we need aproximately 10 days. If we suppose that we will process them on a computer with more then one core, it would be logical to run some processes in parallel. But if we would start them all at the same time – our computer is going to be dead.
The following shell code defines a number of a processes that should be run concurrently, and supported the same number of concurrently running processes until the last file would not be processed.
FILES_LIST=“1 2 3 4 5 6 7“
echo "Start processing file $1"
echo "File $1 is processed."
# Main loop
for i in $FILES_LIST; do
processing $i &
# Control of the concurrent processes
while [ `echo $pid_list|wc -w` -ge "$PROC_IN_PARALLEL" ] ; do
for pid in $pid_list ; do
if [ -d /proc/$pid ] ;then
Shell allow users to send udp or tcp messages to the remote host and to receive replies directly from the command line without any additional tools. It seems like a quite useful thing, but the functionality are limited to act only as a tcp/udp client, and not as a server.
The whole following code shows how to exploit this functionality. It should works properly in both major shell interpretors: Bash and Ksh.
exec 3<> /dev/tcp/$host_name/$port_number Read the rest of this entry »
echo -e "GET / HTTP/1.0\nHost: $host_name\n\n" >&3
while true ;do
read -r response <&3
if [ -z "$response" ];then