If you use ssh-agent and have scripts that use commands, such as ssh or scp, that need your ssh key, you may have had the experience of running your script only to discover that you never ran ssh-add to add your key to ssh-agent. So, you type the passphrase once to run the script, and then you have to run ssh-add afterward and type it again to add it to ssh-agent.
To avoid this, add a check to the top of your script to see whether your key is loaded. If not, load it, and avoid having to run ssh-add afterward:
if ! ssh-add -L | grep --silent '/\.ssh/id_.sa'; then ssh-add fi
The -L option of ssh-add shows what keys are added, its output is piped to grep to check to see whether your key is loaded. If it's not, ssh-add is invoked to add your key.
If you want to extract images from a PDF file, you can use the pdfimages program from the poppler package. To extract the images from an entire file, run the command:
pdfimages input.pdf image-root
If you want to extract images from a range of pages, you can use the -f and -l options to specify the first and last pages in the range. To extract the images from pages two to four, use the command:
pdfimages -f 2 -l 4 input.pdf image-root
Images are written to files named image-root-nnn.xxx, where nnn is an image number and xxx is the image type (for example, jpg).
If you have scripts that need to be run as root, you can check for this at the start of the script with:
if [[ $UID -ne 0 ]]; then echo "Must be run as root" exit 1 fi
If you use sudo, you even could restart the script with sudo if it was not run as root:
if [[ $UID -ne 0 ]]; then sudo -p "Restarting with sudo. Password: " sh $0 $* stat=$? exit $stat fi
The sudo command runs the script as sh $0 $*. The sh is included in case the script does not have the execute bit set.
Webinar: 8 Signs You’re Beyond Cron
On Demand NOW
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.View Now!
|My Humble Little Game Collection||May 28, 2015|
|New Linux Based OS Brings Internet of Things Closer to Reality||May 27, 2015|
|Non-Linux FOSS: All the Bitcoin, None of the Bloat||May 26, 2015|
|Dr Hjkl on the Command Line||May 21, 2015|
|Initializing and Managing Services in Linux: Past, Present and Future||May 20, 2015|
|Goodbye, Pi. Hello, C.H.I.P.||May 18, 2015|
- New Linux Based OS Brings Internet of Things Closer to Reality
- My Humble Little Game Collection
- Dr Hjkl on the Command Line
- Initializing and Managing Services in Linux: Past, Present and Future
- Using Hiera with Puppet
- Non-Linux FOSS: All the Bitcoin, None of the Bloat
- Gartner Dubs DivvyCloud Cool Cloud Management Vendor
- Infinite BusyBox with systemd
- It's Easier to Ask Forgiveness...
- Goodbye, Pi. Hello, C.H.I.P.