• Linux Mint How To Set Desktop Background Image From Bash Prompt CLI


    The way of doing it in mint is different than gnome and ubuntu. gsettings set org.mate.background picture-filename /path/to/file.jpg *If you try to use the gnome way it will NOT work with Linux Mint: gsettings set org.gnome.desktop.background picture-uri /some/pic.jpg........
  • Cisco Unified Communications Manager / CUCM IP 8.6,10,12 Install Error Solution


    Install Errors on Version 12: This error happened on QEMU emulator version 2.11.1 pve-qemu-kvm_2.11.1-5 on Proxmox/Debian but installing on QEMU.12 on Centos 6 did not produce the error. *Update it is not related to the OS or QEMU version. This happened in Centos 6 too after a second install. What really causes this even though you successfully install........
  • Cisco Unified Communications Manager 12 Install Errors on Proxmox/KVM


    The strange thing is that usually the first install or two will work on any new machine but then it suddenly won't. I had this experience on QEMU 2.13 on a different machine. There is something finicky or buggy about the CUCM installer even when choosing the same virtual hardware specs. qemu-kvm command: /usr/libexec/qemu-kvm -version QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.506.el6_10.1), Copyright (c) 2003-2008 Fabrice Bellard ........
  • chroot in Linux Howto Simple and Easy Guide


    chroot which stands for change root allows you to virtually operate in another operating system even though you haven't booted it. It is commonly used to deploy new distros, applications and to fix a broken Linux/Unix install or prep a new system image without having to physically boot the drive or disk. So in this example let's say we have a drive that has a Linux OS installed on /dev/sdb1 and we have mounted this partition on /mnt/sdb1 The key point is to edit the &quo........
  • Linux Mint XWindows Ubuntu MATE or Cinnamon How To Restart The GUI / Graphics / Session if it freezes without losing current windows or programs


    Uh oh, so you're working on some super l33t code or other stuff that is super important and Linux Mint's MATE or Cinnamon window manager freezes. This means maybe you can move your mouse but you can't click anything, you can't Alt + Tab to another program but everything appears to be working other than that. The first thing you would do is Ctrl + Alt + F1 (or whatever virtual terminal you want) and get into the Linux bash prompt (the black screen where things really happen :))........
  • Linux bash prompt why does it not show username@host and the current directory?


    Perhaps you've just seen this in the bash prompt: -bash-4.1# Instead of the expected user@hostname# It is probably because you are missing .bash_profile or .bashrc in your home directory Check for yourself: ls -al ~/|grep -E ".bash_profile|.bashrc" -rw-r--r--. 1 root root&nbs........
  • SSH persistent and automatic login script for proxy


    #!/bin/bash sshcommand="ssh -N -R 20000:localhost:22 user@8.8.8.8" result=`ps aux|grep $sshcommand"|grep -v grep` if [ -z "$result" ]; then echo "we are going to connect" $sshcommand else echo "we are already connected" fi This is a handy script you can use and then add it to cron. Save........
  • How To Use Letsencrypt SSL/TLS Encryption to Create Certificates without installing on the target machine


    For some reason, perhaps you don't want to run a daemon or let Letsencrypt have access to your production server. There is a way to use it like a normal CSR/CA setup in manual mode. ./letsencrypt-auto certonly --manual -d realtechtalk.com - www.realtechtalk.com   Eventually you will get prompted to create a certain path and file with certain data: Create a file containing just this data: Casdfasfadsfsad........
  • bash if statement with wildcard string matching


    In this case if fullurl started with http://www. then it is a match Note that you CANNOT put quotes around it or it becomes a literal match which will not work as intended in the bash script example below. if [[ $fullurl == http://www.* ]]; then echo "do something" fi Another example say we want to delete every file or dir in a path except sometihng that starts with "hellothere": for file in `l........
  • Linux Bash Script To List All Connected IPs and their network name


    for ip in `netstat -nt|awk '{ print $5 }'|cut -d ":" -f 1|tail -n +3|sort|uniq`; do echo $ip;whois $ip|grep -i netname;echo "---------------------------" done 77.88.47.40 netname: YANDEX-77-88-47 --------------------------- 40.77.167.5 ------........
  • proxmox vm networking breaks when you restart your network on the hostnode


    Idid a systemctl restart networking and it broke Proxmox VM connectivity! #proxmox is the problem after restarting the network the tap devices go to disabled state [2230884.919905] vmbr0: port 7(tap118i0) entered disabled state [2230884.948864] vmbr0: port 8(tap122i0) entered disabled state [2230884.972748] vmbr0: port 6(tap119i0) entered disabled state [2230885.004745] vmbr0: port 5(tap117i0) entered disabled state [2230885.03673........
  • LUKS Hard Drive Encryption on Linux Mint Ubuntu Debian etc how to mount encrypted hard drive


    The key thing here is to know the actual partition that is encrypted. Often in Linux Mint's installer that ends up being partition 5 or /dev/sda5 sudo cryptsetup luksOpen /dev/sda5 anynamehere You will then be prompted for your irrecoverable passphrase: Enter passphrase for /dev/sda5: If all goes well it won't say anything further. If it says ""No key available with this passphr........
  • bash script to remove modules from httpd.conf that are not actually installed


    confmodules=`cat /etc/httpd/conf/httpd.conf |grep -v ^#|grep "modules/"|awk '{print $3}'|cut -d "/" -f 2` for module in $confmodules; do echo "module=$module" if [ ! -f /etc/httpd/modules/$module ]; then linenum=`awk /"$module/{ print NR; exit}" /etc/httpd/conf/httpd.conf` sed -i "$linenum"s/.*// /etc/httpd/conf/httpd.conf &n........
  • bash scripting how to create a function


    function centos7 { release=`cat /etc/redhat-release|awk '{print $4}'|grep ^[7]` if [ "$release" != "" ]; then centos7='yes' fi } centos7 echo "$centos7" We create a function called "centos7" and then call it by just typing "centos7" We then access a variable that may be set........
  • Bash How To Cut or Split Natively And Get The LAST Field


    This takes "yourvariable" and splits it based on the last character in this case "-" and shows the last field of that split. ${yourvariable##*-} ........
  • Bash Script How To Manipulate Text/Strings By Searchig and Replacing Natively


    # a single first slash means first occurrence # format=${haystack/needle/replacement} # if you use a double first slash it means ALL occurrences # format=${haystack//needle/replacement} email=${file/.txt-marked/} In the example above we are searching in the variable $file for ".txt-marked" and replacing with nothing (the empty part after the last / means we are replacing with n........
  • bash how to print out lines of text within a range from the first occurrence


    #get line number of occurrence in text file and then print out x lines from that point #get the line number of the first occurrence of our search text linenumber=`grep -n "someuniqueitem" inventory.txt|head -n1|cut -d ":" -f 1` #linestop represents how many lines after the occurring line we want to print out in this case "20" linestop=$((linenumber+20)) # sed prints out the line range we want f........
  • bash script how to to check LAN computers for open ports


    In this case it just searches for port 80 it is fairly handy if you have some sort of appliance or something else you aren't sure of the IPof Of course change the port 80 port to whatever port(s) you want. for ip in `arp -n|arp -n|tail -n +2|head -n -1 |grep -v incomplete|awk '{print $1}'`; do echo "checking $ip:80" nc -w 1 -z $ip 80 if [ "$?" == 0 ]; then echo "**Port 8........
  • What is /dev/pts and why do we need it in Linux?


    A quick check in /dev/pts shows a lot of entries but what are they for?: ls /dev/pts 0 10 12 14 16 18 2 21 23 25 27 29 30 32 4 6 8 ptmx 1 11 13 15 17 19 20 22 24 26 28 3 31 33 5 7 9 Basically they are pseudo-termi........
  • Linux bash shell doesn't show username, hostname or current path fix solution


    Usually this is because when you created your user you added a user but didn't create their home directory and/or for some reason your .bashrc and .bash_profile in ~ (home) is broken/missing. In your home just create the following files with the following content to solve it: .bashrc and .bash_profile. To apply it just relogin/start a new bash session # .bash_profile # Get the aliases and funct........
  • zenity popup messages, windows, dialogs, error messages calendars and more howto on Gnome Linux including Ubuntu, Linux Mint, Centos and more


    zenity is a nice utility as part of the gnome window manager that allows you to script from bash and retrieve the input from the user. It could also be helpful in just notifying a user when they login with a popup window. I'll give an overview of what's available with zenity: Application Options: --calendar Display calendar dialog --entry Display tex........
  • Debian Mint Ubuntu compiling xmr-stak


    sudo apt-get install libcurl4-openssl-dev git build-essential autotools-dev autoconf libcurl3 sudo apt-get install libcurl4-gnutls-dev git clone https://github.com/wolf9466/cpuminer-multi sudo apt-get install cmake libpthread-* libmicrohttpd-dev libssl-dev libhwloc-dev git clone https://github.com/fireice-uk/xmr-stak-cpu.git make install cd bin chmod +x xmr-stak-cpu ./xmr-stak -O xmr........
  • Linux Centos 7 HowTo Install Yarn


    https://yarnpkg.com/lang/en/docs/install/#centos-stable curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo If you need node.js: curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum install nodejs yarn........
  • mail command line examples of how to send an email using Linux / Unix and the Bash Shell or Scripting


    A simple way that may work for a lot of people who just need basic output for their scripts or daemons to announce an action is this: echo "body or message" | mail -s "realtechtalk.com" user@domain.com If you want to send a text file as the body just do this instead: mail -s "realtechtalk.com" user@domain.com < /tmp/sometxtfile.txt These are some ve........
  • Linux Mint Black Screen after boot no graphics solution


    This is not the normal "black screen"issue and I was shocked to eventually find out why. The normal advice of reconfiguring Xorg didn't work. Even booting into "Recovery Mode" did not help. Here is the short end of the stick that fixed it: sudo apt-get install mdm mate-desktop-environment Yes you got it right, mdm and the mate-desktop-environment / gnome were somehow uninstalled. This must be whe........
  • How to start screen in bash script or from /etc/rc.local on startup as a specific user


    It takes some tinkering the main thing is that the "-dmS" flag allows screen to start without a session which of course sudo won't have. solution: /usr/bin/sudo -u user /usr/bin/screen -dmS nameyouchoose /script/start.bash this doesn't work at all: /usr/bin/sudo -u user "/usr/bin/screen /script/s........
  • Centos How To Update to Glibc 2.14 Plus


    Centos 6 requires GLIBC 2.12 however a lot of new programs you would want to compile may need a newer glibc. You can't remove the old glibc since the whole OS is based on it but you can install the updated glibc alongside it and do an export pointing to your updated GLIBC. mkdir ~/glibc_install; cd ~/glibc_install wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz........
  • bash find line and replace howto


    First find the line number: awk '/what you are searching for/{ print NR; exit }' input-file 86 Now use sed to replace it: sed -i 86s/.*/"your replacement text"/ $file Here is a full sample script to automate it: file=some/f........
  • pcimodules and lspci not working alternative solution


    pcimodules no longer works it produces nothing probably because the format of /sys/bus/pci is different. lspci -k doesn't work on older lspci versions. pciutils can be compiled but it won't work if you have an old system and compile on a newer glibc. iteriate through /sys/bus/pci/devices/*/modalias cat /sys/bus/pci/devices/*/modalias pci:v00008086d00001237sv00000000sd00000000bc06sc00i00 pci:v00008086d00007000sv0000000........
  • linux how to answer yes to copy


    Have you have a command ask a question such as cp or move? You can do this: echo y|cp * /tmp/othercopy However it may still fail if your bashrc aliases have the "-i" flag see this post here.........
  • linux cp and mv will not overwrite due to alias!


    This through me for a loop when I would do a cp -rf or mv -f nothing would get overwritten even if piping y or yes to the command. Type alias and you'll see why: alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' The -i is a safeguard against messing things up but however does mess things up worse when you know what........
  • bash Linux how to get first or last letters of a word


    To get the first X letters of a word: It's very simple you can just pipe it to head with -c 1 (gives the first letter and so on) -c2 (2 gives the first 2 letters). echo "dsjfsdlksjdklf;jlsd;kflasdj;kl"|head -c 2 Returns ds To get the last X letters of a word: Now we use tail with -c but it works differently. ........
  • Linux bash script to see what connected computers respond to ping


    A great way when moving your equipment to a new location, new router/switch etc to help confirm what MAC has what IP: for ip in `arp -na|awk '{print $2}'|sed s/(//g|sed s/)//g`; do echo ping $ip ping -c 1 -w 1 $ip > /dev/null if [ "$?" == 0 ]; then echo "$ip UP" fi done........
  • Centos 7 Cudaminer Nvidia setup guide


    I am using a GTX 1060 but replace the download for the driver with the correct/current version for your particular card by visiting: http://www.nvidia.com/Download/index.aspx?lang=en-us yum install automake curl openssl-devel libcurl-devel gcc gcc-c++ yum -y install kernel-devel-`uname -r` yum -y install unzip #the........
  • Centos/Linux Bash Script Warning when exiting/logging out of bash/shell/terminal for scripts running in the background


    This is mainly the case on Centos but applies to other distros and situations. If you are running programs in the background with the &, at least in Centos it is usually not honored and if you quit or are disconnected the backgrounded programs will be sent sighup and be shut down. The simplest way around this instead of using & is to start any programs or commands with "nohup" Eg. nohup yourscript.sh........
  • Coolermaster CM Storm Enable LED Backlight in Fedora/Ubuntu/Mint Linux Howto - MB24 Keyboard and MS2K Mouse


    Just type the following in the bash/terminal shell to enable the blue LED light on the Coolermaster CM Storm keyboard: xset led 3 To make it automatic and permanent execute the following as root: echo "xset led 3" >> /etc/rc.local This is a fairly nice gaming keyboard whichI bought because I type very quickly and the cheap standard keyboards simply can't keep up!........
  • mencoder bmovl error vf_bmovl: Unknown command: ''. Ignoring.


    Based on this tutorial: http://www.linuxjournal.com/content/overlay-images-video-using-mplayer-and-mencoder mencoder -oac pcm -ovc raw -vf bmovl=0:0:tfifo -o $output $file vf_bmovl: Unknown command: ''. Ignoring. ........
  • text to speech for Linux


    espeak - is horrible and sounds very old and robotic echo "hello there"|espeak #don't know how to use mbrola and plugins cicero jovie just seems to be a graphical interface to espeak There is also sbreader/sapi Google's Text To Speech Works Quite Well #!/bin/bash say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolec........
  • Linux bash script how to generate a random password using /dev/urandom


    This command will generate a random password using all letters and numbers that is 20 characters wrong based on /dev/urandom (for the most truly random output). echo `< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-20};echo;`........
  • How to create openssl md5 password hash to use in /etc/shadow using bash


    Very useful in embedded and other non-standard deployments. The above makes a random salt of 14 random characters from /dev/urandom (you can change the -14 to whatever number of characters you want for your salt). openssl passwd -1 -salt `< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-14};echo;` YourPassword Output: $1$eW-ScuyL$f/iKMJ5mbJ..7bSzvX6EO0 ........
  • zip warning: name not matched: in Linux Solution


    There are usually two reasons for this. #1 The most common is that you need to enable the -r (recursive) flag with zip to make it recurse into directories. So the solution is to use -r zip -r somefile.zip yourfiles #2 If you are using bash scripting based on ls without the full path or for some other reason the full path is missing, zip looks for the files in the current directory so this will always fail.........
  • bash how to check if a symlink exists as a file or directory


    To check if a file/directory is a symlink in bash: if [ -L/some/path/file ]; then echo "OKwe're a symlink" fi That's all there is to it.........
  • Linux how to whois query other gTLDs such as .club solution


    whois in Linux is incredibly out of date and does not seem to recognize most new TLDs domains, but there is a quick and easy tip/hack/tweak for this. An example of new TLD's site as .review .site .club whois somesite.club No whois server is known for this kind of object. bash to the rescue Now I did try to apply this in .bashrc but DONOT! Ithink the * wil........
  • How to verify SSL SHA-1 Certificate Fingerprnit Signature of your mail/web server to avoid hijacking/man-in-the-middle attacks


    This is especially helpful if you run your own servers. If you are presented with an error message or warning that the signature has changed or does not match the IP/domain you are connecting to you always want to verify manually. So your e-mail/web client will show you an SHA-1 fingerprint like this: "Could not verify this certificate because the issuer is unkown" or other reasons such as a mismatch in IP/domain. It will also show you........
  • Linux how to reformat html file code solution


    The solution is simply "tidy"/Tidy-HTML. It will take your poorly formatted HTML code (and I mean files that span just a few lines that are unreadable) and fix it up. Note the command below does everything in place. *Make sure you take a backup of all .html files* It also seems to break html5 code/templates so beware. tidy -im yourfile.html An automated way in bash:........
  • Linux how to check http headers using bash/curl for SEO


    What code is being returned or where is a URL/domain redirecting you to? Curl makes this easy and simple: curl -Iyourdomain.com........
  • curl: (1) Protocol "https not supported or disabled in libcurl"


    This seems to only happen from a bash script but it's not clear why it works from the terminal but not from a bash script.........
  • if script bash check if socket file (mysql.sock) exists


    The "-S" switch is important as it works with sockets if you use "-f" it will not detect the socket file is there. if [ ! -S "/var/lib/mysql/mysql.sock" ]; then echo "Socket does not exist, restarting" service mysqld restart fi........
  • bash count length of string and characters


    variable="abc hello" How do you count it (note blank/white space counts as a character too)? echo "${#variable}" 9........
  • cp copy all contents of directory to another one including hidden files and folders howto


    cp -a /your/source/. /your/dest/ -a preserves all file atributes and symlinks the "." at the end of /source/ includes all hidden files such as .htacess, .bash_history, .ssh etc.. The / in /dest/ makes sure the contents go into it instead of replacing /dest itself (eg. if you did not have the / at the end).........
  • Debian Linux Ubuntu Mint connect to pptp from terminal bash shell


    apt-get install pptp-linux echo "yourvpnusername * yourpasspass *" >> /etc/ppp/chap-secrets vi /etc/ppp/peers/provpnaccounts.com enter (ignore the lines): ============ pty "pptp server.provpnaccounts.com --nolaunchpppd" name testuser #remotename PPTP require-mppe-128 file /etc/ppp/options.pptp ==========........
  • vi Debian Linux Ubuntu Mint arrow key problem linux ssh bash shell terminal


    Debian/Ubuntu vi keyboard problem, up and down arrows do not work and instead make an A (Up), B (Down), C (Right) or D(Left). The working solution (you could also add the set nocompatible to /etc/vim/vimrc to make it system wide-will not be applied until reboot I believe): echo "set nocompatible" > ~/.vimrc some suggest entering this in vi but it did not work for me: :set term=cons25 The........
  • bash scripting for loop set number of iterations


    A handy trick in bash that can be adapted to many useful tasks: for i in {1..99}; do echo $i done 1 2.. 97 98 99 100 Another tricky is if you need a 0 in front of the first letters: for i in {1..12}; do if [ $i -lt 10 ]; then i=0"$i" fi echo $i........
  • linux bash mass rename tool Centos/Debian/Ubuntu


    Say you have a bunch of files like this: file-01.jpg file-02.jpg ............... What if you want to mass rename them? the rename tool can work just like sed For Debian based distros: Note "file" is what we search for and "newname" is what we replace it with, so substitute according to your requirements. rename s/file/newname/ name-file-*.jpg For R........
  • bash script Get Model and Serial Number of All Hard Disks in Server on Linux


    for disk in `fdisk -l|grep "Disk /dev"|awk '{print $2}'|sed s/://g`; do echo "$disk" && smartctl -d ata -a "$disk" -T permissive|grep -iE 'Device Model:|Serial Number:' echo "---------------" done *Make sure you have smartctl from smartmon tools installed Sample output: /dev/sdc Device Model: ........
  • How to manually save bash history


    This is useful in the case you are not properly logged in via an OpenVZ session or even a normal SSH session that you fear may go down(if the connection is broken the history is not saved). Save your bash_history like this: history -w ~/.bash_history You can always change the above to another file eg /tm........
  • Centos 6 how to guide convert LVM non-RAID into mdadm 1/10 RAID array live without reinstalling


    Here is the scenario you or a client have a remote machine that was installed as a standard/default minimal Centos 6.x machine on a single disk with LVM for whatever reason. Often many people do not know how to install it to a RAID array so it is common to have this problem and why reinstall if you don't need to? In some cases on a remote system you can't easily reinstall without physical or KVM access. So in this case you add a second physical or disk or already ha........
  • Centos cannot login by console or ssh session closed immediately


    In my case I could login with the initial install but I rsync'd everything over while preserving ownership and permissions to another RAID partition and booted from that.was fine before. The problem is that you are kicked out the second you login and the problem was SELINUX for some reason (perhaps it noticed something strange when it was moved to the new partition) login: pam_unix(login:session): session opened for user root by LOGIN(uid=0) login: ROOT LOG........
  • bash script get directory location and path of script howto tutorial


    So the situaton is this, you depend on things being relevant to where your bash script is and to be safe you want it to be dynamic (eg. do not hard code that we switch to /abc/dir but rather detect where script.sh is located). scriptlocation="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" The path is then contained the the variable "scriptlocation" so you can cd to it in your script etc............
  • Centos/obfsproxy errors


    I never did get it working, it is too bad as obfsproxy should really be an option and integrated into the OpenVPN client and server or something similar: yum -y install python-pip python-devel No package python-pip available. #install the EPEL repo python-pip install obfsproxy python-pip install obfsproxy -bash: python-pip: command not found pip install obfsproxy &........
  • bash check size of file using stat


    stat -c %s testfile.zip 10000000 The output is shown above in bytes. ........
  • bash script check if string contains text


    if [[ $variable = *windows* ]]; then echo "Our variable has windows" fi ........
  • sed linux bash how to remove non-ASCII english characters


    sed -i 's/[d128-d255]//g' file.txt........
  • bash string substitution


    so in this case we have files named like this: track01.cdda.wav.mp3 track06.cdda.wav.mp3 track11.cdda.wav.mp3 track02.cdda.wav.mp3 track07.cdda.wav.mp3 track12.cdda.wav.mp3 track03.cdda.wav.mp3 track08.cdda.wav.mp3 track13.cdda.wav.mp3 track04.cdda.wav.mp3 track09.cdda.wav.mp3 track05.cdda.wav.mp3 track10.cdda.wav.mp3 but we want to rename them so they are like "05.........
  • bash script delete all non-English characters


    #remove non english characters from file: sed -i 's/[d128-d255]//g' file.txt........
  • bash script how to do wildcard string comparisons or matching


    This is a feature that works very well in bash and is easy to do: *Remember you need the double brackets for this specific test even though a normal if would not require them variable="hi there" if [[ "$variable" = hi* ]]; then echo "yes it contains hi" fi........
  • bash script test if directory exists


    It's very simple test to see if the directory exists or not. See the directory test in bash below: if [ -d /home/mydir ]; then echo "my directory exists" fi........
  • bash script check if file exists


    It is very simple and like this to test for the existence of file using bash scripting: if [ -f /etc/somefile ]; then echo "yes it exists" fi........
  • bash script linux how to do a wildcard string comparison


    if [[ "$templatesource" == *windows* ]]; then partition=/dev/sda2 fi The * before and after * windows will match this "Ihavelotsofwindowshere" Of we could have used "windows*" and anything that starts with "windows" will be matched etc...........
  • Linux bash how to list files of a certain date with the statu command for scripting


    The command below will show only files created for the month of 2014-12 but you can of course change the year, month or even specific day or time to suit your needs. The awk command simply just makes it output the list of files created on the date you are looking for. stat -c "%z %n" *|grep ^"2014-12"|awk '{print $4}'........
  • Disable linux bash proxy ENV export variable


    if you type Export and see something like this: declare -x all_proxy="socks://127.0.0.1:22000/" Most sites assume and tell you to check your .bashrc or /etc/profile /etc/bash.bashrc which may not apply if you've unknowingly or forgot that you setup a proxy from your GUI such as Gnome. To check in Gnome if you have a permanent proxy do the following: System -> Settings -> Network Proxy........
  • Linux bash read exif data tags from image jpeg/tiff/jpg


    Use the program exiftags exiftags 20141031_155127.jpg-45460829d582e9.jpg exiftags: couldn't find Exif data........
  • esniper and curl errors https://signin.ebay.com/ws/eBayISAPI.dll?SignIn: Couldn't connect to server: couldn't connect to host


    I kept thinking it was esniper but somehow my bash settings have a preset proxy that was creating the issue. https://signin.ebay.com/ws/eBayISAPI.dll?SignIn: Couldn't connect to server: couldn't connect to host curl manually to any URL is the same: curl: (7) couldn't connect to host Run curl with -vvvvvv mode to see the issue: curl -vvvvvvvvvv http://realtechtalk.com * About to c........
  • bash increment how to


    variable=0 increment=$((variable + 1))........
  • Centos automatic ifcfg-eth0 scripts based on list of IPs from bash


    It's a basic script that reads the file "ips.txt" in the current directory and then creates a corresponding ifcfg file     #!/bin/bash GATEWAY=192.168.1.1 NETMASK=255.255.255.0 device=eth0 counter=0 for ips in `cat ips.txt`; do........
  • bash shellshock how to manually patch when there is no update for Centos/Debian/Ubuntu/Fedora


    wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz tar xzvf bash-4.3.tar.gz cd bash-4.3/ wget --no-directories --level 1 --recursive http://ftp.gnu.org/gnu/bash/bash-4.3-patches/ for patch in `ls bash43-*|grep -v .sig$`; do echo applying "$patch" patch -p0 < $patch done ./configure;make;make install #it will install to /usr/bin/bash but if your bash is somewhere else you need to overwrite the old one.........
  • Argument list too long solution - rm -rf new/* -bash: /bin/rm: Argument list too long


    Have you ever tried to run a command like rm to delete several hundred thousand files? Iam not sure what the limit is but any time it is exceeded you need to use a work around like below (which will delete any number of files). Solution find . -maxdepth 1 -name "*.*" -print0 | xargs -0 rm........
  • How to script fdisk in Linux bash


    (echo n; echo p; echo 1; echo 1; echo; echo wq) | fdisk /dev/sdb The above would make a new partition 1 on /dev/sdb and save the changes to disk, you can of course make changes to do almost anything in fdisk.........
  • Howto Convert Xen Image to KVM


    #count=10000 makes an image of 10000MB make sure your image is at least the same as your existing dd if=/dev/zero of=yourimage.img bs=1M count=10000 # losetup -fv newimage.raw # fdisk -cu /dev/loop0 # kpartx -a /dev/loop0 # dd if= of=/dev/mapper/loop0p1 # e2fsck -f /dev/mapper/loop0p1 # resize2fs /dev/mapper/loop0p1 # a lot of guides tell you to edit /etc/fst........
  • Setting Ulimit


    I never found a solution to do it live (nothing worked that I found) so it looks like a relogin is required. Check your maximum file limit cat /proc/sys/fs/file-max 824460 This is different than your actual's user limit which you'll see below ulimit -n 1024 Try and set it higher but it won't work ulimit -n 65000........
  • [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.15449) (5) solution


    [Wed Jan 08 18:50:07 2014] [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.15449) (5) This may happen when trying to restart Apache and you find it dies right after starting and check /var/log/httpd/error_logs. What is the cause of this? You could be out of disk space (if you're not then see #2 and below) You're out of Semaphores, you need to kill all the old ones.........
  • Linux Bash Remove Last Character from string/variable howto


    somestring="309sfjlks39889d" removelast="${somestring%?}........
  • Linux shuf program bash script get random line from file


    shuf -n 1 /path/to/your/file.txt The above will give you a random line from the file using the "shuf" command.........
  • bash Linux basename and directory name, get the actual directory and file


    Example: basename /var/log/messages messages As shown above the "basename" utility gives you the end filename separately. dirname /var/log/messages /var/log As shown above the "dirname" utlity gives you just the utility even if you pass it a specific file. The above two utilities are very helpful in Bash scripting when working with files and directories co........
  • Linux Bash grep howto find line number that contains the result


    cat Xorginfo.txt|grep -nr "xserver-xorg" Result: 9: sudo apt-get remove --purge xserver-xorg 13: sudo apt-get install xserver-xorg 17: sudo dpkg-reconfigure xserver-xorg........
  • bash heredoc howto example


    template=$(cat ........
  • Linux find what processes are swapping


    Here is a handy script that will check all processes and report what is swapping #!/bin/bash for pid in `ps x|awk '{print $1}'`; do result=`cat /proc/$pid/status|grep VmSwap|awk '{print $2}'|grep -v ^"0"` if [ ! -z "$result" ]; then programresult=`ps x|grep $pid|grep -v grep` if [ $? == 0 ]; then program=`echo $programresult|awk '{print $5}'|grep -v ^grep`........
  • bash date command to convert unix epoch timestamp


    date -d @timestampgoeshere +%c It's very handy and simple as shown above.........
  • bash check that file is not blank/zero bytes in size


    if [ ! -s /path/to/file ]; then echo "file is blank or zero bytes" fi Use -s to check if it's larger than 0 bytes, Ilike to use the ! (not) operator to do this as shown above.........
  • LSI MegaRAID Adventures, Guide and HowTo


    LSi Megaraid At first it was configured as a RAID 0, then I deleted the Virtual Disk Group. I thought both drives would be shown and detected in Linux as sda and sdb but it actually shows nothing. To make them work you have to hit Ctrl+R before the system boots (when prompted) and create a Virtual Disk Group. In my case I created each one as RAID 0 (with a single drive only) as I just wanted JBOD but there is no such option or default in these Dell Pe........
  • bash for loop with specific numbers


    Say if you need to make a firewall script to block certain ports this works great. for ports in 21 25 443; do iptables rules here done........
  • Bash weird variable whitespace missing when echoing printing


    Bash weird variable whitespace missing var=`cat tlds.csv|grep .ca,` # echo "var=:$var:" :ar=:.ca,Canada Why is the v missing in the last line? It should be :var=:.ca,Canada instead of :ar=:.ca,Canada I noticed a problem with the file with doing a "cat -v" on it. Here's the issue, the file contains carat M ^M: .vg,British Virgin Island........
  • bash script howto use heredocand assign to a variable and write to a file


    zonetemplate=$(cat ........
  • Execute Local Bash Scripts remotely by SSH


    for ip in `cat fixlist.txt`; do sudo -u apache ssh root@$ip "`cat iptablesrules.sh`" done In the above example we are going to execute the commands within the local file "iptablesrules.sh" on all the machines in "fixlist.txt". This is a great way of performing server maintenance in a clustered or cloud environment.........
  • bash how to read a single line or filenames with spaces solution


    This happens all the time, you are reading from a textfile which has spaces eg: datainfo 00 datainfo 11 If you do loop on it like this: for info in `cat $file`; do echo "info=$info" done It will treat datainfo and 00 as two separate lines: info=datainfo info=00 Obviously that's not what we want and there are many weird solutions in bash bu........
  • mysql how to execute script from the bash prompt .sql


    mysql -u username --password='yourpassword' ........
  • Linux/Debian shutdown/reboot without going through init force


    -bash-3.1# shutdown -rn now Connection to localhost closed by remote host. Connection to localhost closed. Sometimes I work with embedded systems/custom kernels without any of the fancy init scripts and other common Linux basics that most would expect. This means that often the "reboot" command (which uses an init script) will never work, not only that but it will hang the server and a manual power cycle or reboo........
  • bash add numbers


    num=$(($onenum + $anothernum)) It's a bit silly that bash can't add normally as you'd expect (eg. $num + $num).........
  • bash random number


    $[ ( $RANDOM % 5000 ) + 20 ] echo "$[ (........
  • bash linux extract specific lines from a file


    start=1 increment=5 lines=`cat linesfile.txt|sed -n "$start","$increment"p` The secret here is the power of sed. Basically the example above would take the first 5 lines from the file. You could change it though to say take 20 lines starting from the 5th line by adjusting the start and increment values.........
  • bash for loop script for a specified number of times example


    for entity in {1..20}; do echo "entity=entity" done The above will loop 20 times, you could also do {2..50} etc... for entity in {0..10..5}; do echo "entity=entity" done The above will loop 10 times but will start from 0 and increment by 5 each time.........
  • How to install GRUB to the MBR of a disk image.


    cat | grub --device-map=/dev/null Now pay close to the attention of the beginning. Type: "device (hd0) VPS.img" this is telling what hd0 will be to GRUB and we're telling it the disk image file "VPS.img" in the current directory is hd0, you can specify alternate paths and image names of course. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-li........
  • Thunderbird How-To Copy/Backup/Restore Accounts and Settings to Another Computer


    The best way is to use rsync, I've set it up so it doesn't copy unnecessary files, or at least ones I'm sure aren't needed. Here is the rsync command Iused (adapt to your specific Thunderbird profile location): rsync -hazv user@remotehost.com:/home/user/.thunderbird/sbrer.default/* /home/user/.thunderbird/4nyb0.default/ --exclude=global* --exclude=Cache --exclude=ImapMail --exclude=Mail This is a great way to get your e-mail accounts going on a new c........
  • Disable SELinux How To Tutorial Solution


    Here is a quick script that works on most Centos versions to disable the virus/SELinux from blocking basic functionality. The first echo 0 statement disables SELinux instantly but it will still be enabled on reboot. The second line disables it permanently. #!/bin/bash #disable SELinux Immediately echo 0 > /selinux/enforce #disable SELinux Permanently sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config........
  • bash script remove non-printable special characters/white space


    In bash you test like this for problems that can be caused by non-printable characters since if you don't know how to identify it because it basically breaks your script. echo "url=$url" should print something like this normally if you have properly formatted input/text: url=::http://someaddress.com:: But if you have some weird hidden characters (not visible in a text editor of any sort you'll get something like this ::l=::http://s........
  • LOG: MAIN PANIC failed to expand condition "${if eq {$authenticated_id}{}{0}{${if eq {$sender_address}{$local_part@$domain}{0}{${if match{$received_protocol}{N^e?smtps?a$N}{${perl{checkbx_autowhitelist}{$authenticated_id}}}{${if eq{$received_prot


    I experienced this with CPanel's Exim after an auto-update (a Google of this error produces lots of complaints with few clear solutions). In this case I'll put the solution at the top. Run /scripts/buildeximconf to rebuild the Exim config and it should be fine after that. mail -vs "from test" user@dest.com < .bash_history LOG: MAIN cwd=/root 4 args: send-mail -i -v user@dest.com LOG: MAIN &........
  • sed print specific line from file using Linux/Bash


    It may be hard to find by Googling by it's really quite simple and quicker than reading dozens of man page entries. sed -n 5p somefile.txt Just replace the 5 with whatever line you want to be printed.........
  • Linux Out of Memory OOM Object Killer Solution "Out of memory: kill process 1955 (sshd) score 81 or a child"


    I had a system running a 128MB live CD image with 2.8 gigs of available RAM and the OOM kernel killer went crazy when using dd for more than 8 minutes and kept killing everything. I've read that this is due to a low-memory issue and paging in the kernel and 32-bit systems with lots of RAM. I even enabled swapspace on my LiveCD and the issue happened 25 minutes into dd rather than 8 minutes, so what gives? Also no swap space was ever used! cat /proc/s........
  • GRUB Solution to error "Error 6: Mismatched or corrupt version of stage1/stage2"


    GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub> root (hd1,0) Filesystem type is ext2fs, partition type 0xfd grub> setup........
  • encrypt bash scripts to hide source code


    http://www.datsi.fi.upm.es/~frosal/ SHC is a program written by the author above that does just that, it's a great little tool to have. Some have said it isn't exactly encrypting the code but just making it hard to read by obfuscating the code. There was also a good discussion about that here:........
  • ls: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory solution


    ls ls: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory This is not an ldd problem or case of anything missing, this only happened after I upradedUbuntu. declare -x PATH="/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/games" "/home/user/bin" is the problem! It's weird because I have no idea how it happened.........
  • Thunderbird/MBOX to IMAP/Maildir migration done easy with mb2md


    Convert MBOX Mail files into Maildir using Linux *You need perl an the TimeDate module Get the free Perl script mb2md from the project/author's site: wget http://batleth.sapienti-sat.org/projects/mb2md/mb2md-3.20.pl.gz gunzip mb2md-3.20.pl.gz #remember you need timedate or you'll get this error: ./mb2md-3.20.pl Can't locate........
  • mdadm/md-check how to check array integrity without rebuilding


    This doesn't seem to be widely known (maybe it's in some documentation that none of us read though)but there's an easy way to check the integrity of any mdadm array: sudo echo check > /sys/block/md0/md/sync_action -bash: /sys/block/md0/md/sync_action: Permission denied sudo will never work, this only works as root since echo is not actually a binary/command. It is built-into bash. /sys/devices/virtu........
  • bash script count unique/dupllicate lines in a file


    For many reasons you may be dealing with a standard text file and you want to know if there are any duplicate lines: Here's how you do it: cat filename|uniq -c The "uniq -c" program counts how many time each line occurs.........
  • yum in Centos 5/Xen halts and exits suddenly


    yum exits in the middle The problem is this VPS seems to be an OpenVZ template from HyperVM. The only way to make it work was to disable i386 packages since this was an x64 kernel. That shouldn't be necessary but it was the only way to make yum stop quitting after the first package or two. I couldn't find any issue by checking the logs either. echo y|yum install vim-minimal telnet expect jwhois net-tools slocate iptables elinks gawk L........
  • mdadm RAID 1 adventures


    I separated the 2 drives in the RAID 1 array. 1 is the old one /dev/sda and is out of date, while the separated other one /dev/sdc was in another drive and mounted and used with more data (updated). I wonder how mdadm will handle this: usb-storage: device scan complete md: md127 stopped. md: bind md: md127: raid array is not clean -- starting background reconstruction raid1: raid set md127 active with 1 out of 2 m........
  • How to chroot properly into your OS/distro


    From a LiveCD or if you're doing something like converting your non-RAID install to mdadm here's how you would chroot properly (you have to mount your proc, sys and dev on the running system/LiveCD to your chroot environment if you want things to work right, especially if you need to run update-initramfs due to a driver change etc..) *replace "path" with your mount/chroot path mount -o bind /proc /mnt/path/proc mount -o bind /dev/ mnt/pa........
  • NotifyByPopup::slotDBusNotificationClosed: 465 -> 0 knotify(31135) NotifyByPopup::slotDBusNotificationClosed: failed to find knotify id for dbus_id 465


    I keep getting this in my SSH/Bash console: NotifyByPopup::slotDBusNotificationClosed: 465 -> 0  ........
  • jailkit for chroot ssh account security tutorial and fix for error


    This was done on Centos butI think it's easier on Debian machines, the paths that it is set to use are tailored towards Debian, so there is some fiddling that needs to be done on Centos. This is for chrooting ssh, but jailkit has other uses than just SSH jails but I won't cover them in this writeup. 1. Install jailkit yum install jailkit 2. Setup Jail Home mkdir /home/jail chown root:root /home/ja........
  • SSH Automatic/Passwordless Logon - Setup Public Key Encryption In Single Command


    This is a very simple solution, but most guides out there make you login twice (once to scp the key) and once to put the key in authorized_keys. There's no need for that. If you don't already have a ~/.ssh/id_rsa.pub just type "ssh-keygen -t rsa" and keep hitting enter until it's done :) Just use this code to easily enable passwordless login with SSHD key=`cat ~/.ssh/id_rsa.pub`;ssh user@192.168.5.25 "echo $key >> ~/.ssh/auth........
  • mdadm Linux Software RAID auto-detect and assemble RAID Array


    mdadm --assemble --scan mdadm: /dev/md/diaghost05102010:2 has been started with 2 drives. mdadm: /dev/md/diaghost05102010:1 has been started with 2 drives. mdadm: /dev/md/diaghost05102010:0 has been started with 2 drives. -bash-3.1# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [multipath] md125 : active raid1 sda1[0] sdb1[1] 14658185 blocks super 1.2........
  • Seagate 7200.11 firmware defect in 500GB, 1000GB (1TB) and 1500GB (1.5TB) Hard Drives


    Seagate Inventory/Firmware Check I heard about this issue a long time ago but never looked into it. I figured I wasn't affected since my 500GB drives were running for so long. I've been using Seagate's since 2002 and to this day all of the drives I have are alive from Seagate. *Update the bad news is that I realize one of my 500GB's is about to die, it's not even a year old, but is also not affected by the recall according to Seagate! Seagate Inventory/Firm........
  • Convert HDD/Hard Drive Partition(s) into non-RAID into RAID 1 using existing data without data loss and without reformatting.


    Before we start I take no responsibility for this, you should have a backup and if you make a mistake during this process you could wipe out all of your data. So backup somewhere else before starting this as a precaution, or make sure it's data you could afford to lose. The RAID 1 Setup (Hardware Wise) I've already setup my 2 x 1TB (Seagate) drives with identical partitions, make sure your new hard drive (the empty one) is setup like your curr........
  • email2fax and Asterisk to do eFaxing


    It's basically free bash shell script available from: http://wpkg.org/email2fax/index.php/Main_Page Make sure you have the required tools: libtiff ghostscript mpack/munpack Where you can e-mail your Asterisk box and it will fax it to the phone number in the subject line. The good news ends there, it is fairly undocumented and buggy. Take for example how the documentation mentions you can invoke from the com........
  • PHP cannot access /usr/bin/openssl


    PHP cannot access /usr/bin/opensslI have verified the username that runs the process is able to access /usr/bin/openssl and it does exist but the PHP script is saying it doesn't exist: [code:1:1fd0f3abbe] if (!file_exists($OPENSSL)) { //echo "ERROR: OPENSSL $OPENSSL not foundn"; }[/code:1:1fd0f3abbe] I don't get itI can clearly see the contents of /usr/bin by using the PHP system fu........
  • rsync bash script


    rsync bash script [code:1:722d8a25c1]#!/bin/bash # config --------------------------------- # two methods # from = receive data from another server # to = send data to another server rsync_method=from rsync_ip='192.168.5.18' local_dir='/home/backupguy/backups' remote_dir='/home/backup' free_space_bin='/home/backups/freediskspace.sh' # config end ------------------------------ if [ '$rsync_me........
  • Change default shell


    Change default shellJust echo this at your command line (in this case I chose bash since I prefer the bash shell) this way it will be the default when you login again [code:1:71e2834907]chsh -s bash[/code:1:71e2834907]........
  • Bash Script Info


    Bash Script Infohttp://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html#ss10.5 http://www.scit.wlv.ac.uk/~jphb/spos/notes/shell/shell5.html http://quong.best.vwh.net/shellin20/#LtohTOCentry-41 http://www.cactus.org/~dak/shellscript.html http://db.ilug-bom.org.in/Documentation/abs-guide/ http://pegasus.rutgers.edu/~elflord/unix/bash-tute.html http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/CShellII.html Since bash i........
  • Debian/Ubuntu/Kubuntu Bash/Console/Terminal/Putty Home and End Keys Don't Work or Produce a ~


    This is a very weird, annoying and bizarre quirk with many distributions, especially Debian. The home and end keys don't work, but it's a simple fix as long as you found this article :) You just have to edit /etc/inputrc: Find the commented lines as shown below: # "e[1~": beginning-of-line # "e[4~": end-of-line *If you can't find the above, just copy and paste the code below into your inputrc, it will en........
  • GRUB "Error 2: Bad file or directory type" 0.97 won


    You can see the problem below, GRUB recognizes my hard drive and sees the partitions but cannot access them. This is from the GRUB boot disc I'm using. What happened is that I had some power issues causing this system's power to be interrupted several times and basically an on/off on/off situation. The system won't boot, I just get a flashing cursor and no message or error from GRUB. Obviously the problem is that my MBR seems corrupt or some other issue. My........
  • Linux Bash Shell Cannot/Can't View File That Starts With - Dash ?


    Iwas getting really annoyed with this, I used full quotes around the filename and vi, cat, less all thought I was trying to pass the dash in the filename as an argument. I didn't realize that all you have to do is just put a dash dash "--"in front. Here's an example:cat -- "-etc-glusterfs-glusterfsd.vol.log" Without the -- you get: cat: invalid option -- c Try `cat --help' for more information. Ih........
  • Bash Script/Linux/Unix HTML/XML Parser


    There is a tool called "xml2" which will parse both HTML and XML scripts, this is very useful to do a mass extraction or conversion of data based on say an HTML table etc.. It becomes even more powerful using bash if certain tags are identified with a certain class="" attribute or something else unique to only the tags you want. Happy parsing.........
  • BASH script error "((: 08: value too great for base (error token is "08")"


    ((: 08: value too great for base (error token is "08") Here is the code that caused it for ((track=1;track ........
  • BASH Decrement Does not work


    track-=1 produces track: command not found It's weird because track+=1 works just fine The solution is to used the old fashion method: track=$(($track - 1))........
  • Bash Scripting Variable Scope Using Piped While Loop


    I've been struggling with this for awhile, wondering why all of my variables are null. Ijust realized the variables disappear after leaving this while loop. Note that I'm piping to the while loop which makes a subshell Ibelieve which is the cause of the issue: echo "$accounts"|while read thisline; do somevariable="some value" (( ++counter )) done At all costs you ne........
  • Latest Articles

  • python 3 pip cannot install mysql module
  • QEMU-KVM won't boot Windows 2016 or 2019 server on an Intel Core i3
  • Virtualbox vbox not starting "No suitable module for running kernel found"
  • Bind / named not responding to queries solution
  • Linux Mint How To Set Desktop Background Image From Bash Prompt CLI
  • ImageMagick Convert PDF Not Authorized
  • ImageMagick Converted PDF to JPEG some files have a black background solution
  • Linux Mint Mate Customize the Lock screen messages and hide username and real name
  • Ubuntu/Gnome/Mint/Centos How To Take a partial screenshot
  • ssh how to verify your host key / avoid MIM attacks
  • Cisco IP Phone CP-8845 8800/8900 Series How To Reset To Factory Settings Instructions
  • ls how to list ONLY directories
  • How to encrypt your SSH private key file id_rsa
  • Linux Mint 18 Disable User Name List from showing on Login Screen
  • Firefox Cannot Hit Enter Key In Address Bar and Location History Not Working
  • Cisco Unified Communications Manager / CUCM IP 8.6,10,12 Install Error Solution
  • Ubuntu Debian Mint Linux SSHD OpenSSH Server Not Starting After Reboot Solution
  • nmap how to scan for all ports and not just the 1000 most common ports
  • Windows 7,8,10 and Server 2008, 2012, 2016, 2019 Read Only Attribute Won't Go Away
  • bind / named how to make a wildcard record and retain defined A records