terça-feira, dezembro 29, 2009

Light PDF Reader - View PDF, Free PDF Viewer

Cool PDF Reader - View PDF, Free PDF Viewer: "The world's smallest PDF viewer/reader to view, print, and convert PDF files to TXT, BMP, JPG, GIF, PNG, WMF, EMF, EPS. It is only 650KB for download and doesn't need lengthy installation, just download and run. Freeware!"

This is a really cool pdf viewer without all glamor of it's father from Adobe, I liked it. You download directly the .exe file and run ...

(pdf viewer, light pdf viewer)

domingo, dezembro 13, 2009

Pass on Passwords with scp


Pass on Passwords with scp: "Pass on Passwords with scp
October 6th, 2005 by Dave Sirof in

* Linux Journal

Learn how to propagate files quickly and do backups easily when you set up scp to work without needing passwords.
Cancel rating
Your rating: None Average: 4.3 (59 votes)

In this article, I show you how to use the scp (secure copy) command without needing to use passwords. I then show you how to use this command in two scripts. One script lets you copy a file to multiple Linux boxes on your network, and the other allows you to back up all of your Linux boxes easily.

If you're a Linux sysadmin, you frequently need to copy files from one Linux box to another. Or, you may need to distribute a file to multiple boxes. You could use FTP, but using scp has many advantages. For instance, scp is much more secure than FTP. scp travels across the LAN/WAN encrypted, while FTP uses clear text, even for passwords.

But what I like best about scp is it's easily scriptable. Suppose you need to distribute a file to 100 Linux boxes. I'd rather write a script to do this than type 100 sets of copy commands. If you use FTP in your script, things can get messy, because each Linux box you log into is going to ask for a password. But if you use scp in your script, you can set things up so the remote Linux boxes don't ask for a password. Believe it or not, this actually is much more secure than using FTP.

Here's an example demonstrating the most basic syntax for scp. To copy a file named abc.tgz from your local PC to the /tmp dir of a remote PC called bozo, use:

scp abc.tgz root@bozo:/tmp

You now are asked for bozo's root password, so we're not quite there yet. The system still is asking for a password, so it's not easily scriptable. To fix that, follow this one-time procedure, after which you can make endless password-less scp copies:


Decide which user on the local machine will be using scp later on. Of course, root gives you the most power, and that's how I personally have done it. I'm not going to give you a lecture here on the dangers of root, so if you don't understand them, choose a different user. Whatever you choose, log in as that user now and stay there for the rest of the procedure. Log in as this same user when you use scp later on.

Generate a public/private key pair on the local machine. Say what? If you're not familiar with public key cryptography, here's the 15-second explanation. In public key cryptography, you generate a pair of mathematically related keys, one public and one private. You then give your public key to anyone and everyone in the world, but you never ever give out your private key. The magic is in the mathematical makeup of the keys; anyone with your public key can use it to encrypt a message, but only you can decrypt it with your private key. Anyway, the syntax to create the key pair is:

ssh-keygen -t rsa


In response, you should see:

Generating public/private rsa key pair
Enter file in which to save the key ...

Press Enter to accept this.

In response, you should see:

Enter passphrase (empty for no passphrase):

You don't need a passphrase, so press Enter twice.

In response, you should see:

Your identification has been saved in ...
Your public key has been saved in ...

Note the name and location of the public key just generated. It always ends in .pub.

Copy the public key just generated to all of your remote Linux boxes. You can use scp or FTP or whatever to make the copy. Assuming you're using root--again, see my warning in step 1--the key must be contained in the file /root/.ssh/authorized_keys. Or, if you are logging in as a user, for example, clyde, it would be in /home/clyde/authorized_keys. Notice that the authorized_keys file can contain keys from other PCs. So, if the file already exists and contains text, you need to append the contents of your public key file to what already is there.

Now, with a little luck, you should be able to scp a file to the remote box without needing to use a password. So let's test it by trying our first example again. Copy a file named xyz.tgz from your local PC to the /tmp dir of a remote PC called bozo:

scp xyz.tgz root@bozo:/tmp

Wow--it copied with no password!

A word about security before we go on. This local PC just became pretty powerful, as it now has access to all the remote PCs with only the one local password. So that one password better be strong and well guarded.

Now for the fun part. Let's write a short script to copy a file called houdini from the local PC to the /tmp dir of ten remote PCs, located in ten different cities, in only five minutes of work. Of course, it would work the same with 100 or 1000 of PCs. Suppose the 10 PCs are called brooklyn, oshkosh, paris, bejing, winslow, rio, gnome, miami, minsk and tokyo. Here's the script:

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk
scp houdini root@$CITY:/tmp
echo $CITY ' is copied'

It works like magic. With the echo line in this script, you should be able to watch as each city's copy is completed one after the next.

By the way, if you're new to shell scripting, here is a pretty good tutorial.

As you may know, scp is only one part of the much broader SSH program. Here's the cool part: when you followed my six-step procedure above, you also gained the ability to sit at your local PC and execute any command you like on any of the remote PCs--without a password, of course. Here's a simple example to view the date and time on the remote PC brooklyn:

ssh brooklyn 'date'

Let's now put these two concepts together for one final and seriously cool script. It's a down-and-dirty way to back up all of your remote Linux boxes. The example backs up the /home dir on each box. It's primitive compared to the abilities of commercial backup software, but you can't beat the price. Consider the fact that most commercial backup software charges license fees for each machine you back up. If you use such a package, instead of paying license fees to back up 100 PCs remotely, you could use the script to back up the 100 PCs to one local PC. Then, back up the local PC to your commercial package and save the license fees for 99 PCs. Anyway, the script below demonstrates the concepts, so you can write your own script to suit your own situation. Simply put this script in a cron job on your local PC; no script is required on the remote PCs. Please read the comments carefully, as they explain everything you need to know:


# Variables are upper case for clarity

# before using the script you need to create a dir called '/tmp/backups'
on each
# remote box & a dir called '/usr/backups' on the local box

# on this local PC
# Set the variable 'DATE' & format the date cmd output to look pretty
DATE=$(date +%b%d)

# this 'for loop' has 3 separate functions

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk

# remove tarball on remote box from the previous time the script ran #
to avoid filling up your HD
# then echo it for troubleshooting
ssh -1 $CITY 'rm -f /tmp/backups/*.tgz'
echo $CITY ' old tarball removed'

# create a tarball of the /home dir on each remote box & put it in
# name the tarball uniquely with the date & city name
ssh $CITY 'tar -zcvpf /tmp/backups/$CITY.$DATE.tgz /home/'
echo $CITY ' is tarred'

# copy the tarball just create from the remote box to the /usr/backups
dir on
# the local box
scp root@$CITY:/tmp/backups/$CITY.$DATE.tgz /usr/backups
echo $CITY ' is copied'


# the rest of the script is for error checking only, so it's optional:

# on this local PC
# create error file w todays date.
# If any box doesn't get backed, it gets written to this file
touch /u01/backup/scp_error_$DATE

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk


# Check if tarball was copied to local box. If not write to error file
# note the use of '||' which says do what's after it if what's before it
is not # true
ls /u01/backup/$CITY.$DATE.tgz || echo ' $CITY did not copy' >>

# Check if tarball can be opened w/o errors. If errors write to error file.
tar ztvf /u01/backup/$CITY.$DATE.tgz || echo 'tarball of $CITY is No
Good' >> scp_error_$DATE


That's about it. In this article, I've tried to give examples that demonstrate the concepts and are not necessarily ready to be used 'as is'. Some of the syntax may not work for all distributions, but in the interest of brevity, I could not include all the possibilities. For example, if you are using Red Hat 6.2 or before, the syntax requires some changes. So be creative, and hopefully you can use some of this work in your own environment.

Copyright (c) 2004, Dave Sirof. Originally published in Linux Gazette issue 98. Copyright (c) 2004, Specialized Systems Consultants, Inc.


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994."

sábado, dezembro 12, 2009

Junction v1.05

Is seems the same as ln -s in linux systems.
Create symbolic lynk on NTFS systems, very usefull.

Junction v1.05: "Junction v1.05
By Mark Russinovich

Published: July 24, 2007

Download Junction (41 KB)


Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows' Remote Storage Service (RSS), as well as volume mount points.

Please read this Microsoft KB article for tips on using junctions.

Note that Windows does not support junctions to directories on remote shares.

If you want to view reparse information, the usage for Junction is the following:

Using Junction

Use junction to list junctions:

Usage: [-s] <directory or file name>

-s Recurse subdirectories


To determine if a file is a junction, specify the file name:

junction c:\test

To list junctions beneath a directory, include the –s switch:

junction -s c:\

To create a junction c:\Program-Files for 'c:\Program Files':

C:\>md Program-Files

C:\>junction c:\Program-Files 'c:\Program Files'

To delete a junction, use the –d switch:

junction -d c:\Program-Files

Download Junction
(41 KB)"

sábado, dezembro 05, 2009

Add "Take Ownership" to right-click menu in Vista

Add “Take Ownership” to right-click menu in Vista
by Daniel Petri - January 7, 2009

In order to streamline the ownership of various files and folders in Windows Vista, you can add the “Take Ownership” option to your right-click menu. After clicking this icon, the owner of the selected file or folder will automatically change to your username. Please note that in order to use this feature you must have administrative privileges.

Petri Recommended: Update to the Latest Vista Drivers

Vista's performance can be improved dramatically by installing the latest Vista-Certified hardware drivers. PC hardware manufacturers release new, improved Vista drivers continually: New versions are probably available for your PC right now.

Petri IT Knowledgebase Team
>> Download Driver Genius Pro: Our recommended Vista driver update scanner (5.1Mb)

Please be aware that this change requires making a change to the Windows Vista registry.

Note: Editing the registry has the potential to cause serious (and unrecoverable) damage to your PC. If you are at all uncomfortable editing the registry, please do not attempt the following.

The first step is to create a registry file. You can do this by opening Notepad (Start >> All Programs >> Accessories >> Notepad) and copying and pasting the following:

Windows Registry Editor Version 5.00

@="Take Ownership"

@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

@="Take Ownership"

@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

Save the file with the name Ownership.reg and close Notepad.