Category Archives: Quick Tips

Telnet: shell script to issue commands to telnet session.

This is a quick post to show how one can issue commands to telnet session from a shell script or command line with out going into interactive mode. I use this to get stats from our memcache servers or issue a flush_all via telnet from a script/cron.

So without further delay, following command will telnet to local memcached server on port 11211 and issue one of the memcached commands, stats

(sleep .5;echo stats) | telnet localhost 11211
You may have to play with the sleep timer to get it to work for your environment but in our .5 was the sweet spot. Good luck and let me know if you have another shell command. Obviously we can do this from perl, php, python, etc but the beauty of this is that you do not need any other dependencies plus its a very short command.

Since “jsled” commented about nc (thanks jsled), here is the syntax to do the same thing with nc:

echo "stats" | nc localhost 11211

Linux: How do you rename a user account in linux?

In Linux, there is no command which will rename a user account. If you make a mistake creating a user account, user changes their name or if user does not like his user name, there is no real easy way of going and making the change. Only thing I know you can do is to go through some files and rename user manually. Let us say that we have a user who is named joe and we want to rename him to john.

Note: you must be logged in as root to do following.

vi /etc/passwd
find joe and change it to john, save/exit

vi /etc/group
find joe and change it to john, save/exit

vi /etc/shadow
find joe and change it to john. This file is read only and you have to force overwrite it. In vi it is :w! once saved, quit.

cd /home
mv joe john

And that should do the trick.

[Edited] Right after I posted this post, I was contacted and was told to look at utility called usermod. Read more about it man usermod. Got to love the quick responses.

————————————-
DISCLAIMER: Please be smart and use code found on internet carefully. Make backups often. And yeah.. last but not least.. I am not responsible for any damage caused by this posting. Use at your own risk.

Samba: How do you install and set up Samba in linux? [Redhat Enterprise(RHEL), CentOS, Fedora]

Setting up Samba “can” be complicated at times. Especially if you are looking for instructions online where there are WAY too many tutorials which go in to details about what configuration does what, etc. Well, this post is nothing like that. Here I just show you quick and easy way to install Samba, configure it, and set up the drive letter on your XP/Vista. NOTE: for using Samba with Vista, please see my previous post in which I talk about changing settings in Vista so you can connect to your Samba share: Windows Vista Installation

NOTE: This set up is very “open” and should not be used on servers which are facing the world. This is for private network where you trust all the computers and its users.

Installing Samba (using yum on CentOS and Fedora): yum install samba
Installing Samba (using rpm):

  1. Obtain Samba rpm from rhn.redhat.com
  2. rpm -ivh samba*.rpm

Configuring Samba:
cd /etc/samba
mv smb.conf smb.conf.backup
vi smb.conf

Paste content below in to your vi:

[global]
workgroup = wrkgrp
netbios name = smbserver
security = SHARE
load printers = No
default service = global
path = /home
available = No
encrypt passwords = yes
[share]
writeable = yes
admin users = smbuser
path = /home/share
force user = root
valid users = smbuser
public = yes
available = yes

save and exit

adduser smbuser #add unix account
passwd smbuser #set unix account password
smbpasswd -a smbuser #lets create same user account on samba
<put same password as your unix account password>
/etc/init.d/smb restart

Now let us setup drive letter on our Windows so we can easily access these files.

Start -> run -> cmd <enter>

At the prompt type: net use z: \\ip_of_your_samba_server\share /user: smbuser password_you_assigned

That is it! At this point you have successfully set up Samba under Linux and are now successfully connected to your share from your Windows machine.

TIP: How do I rename multiple files to another extension?

Let us say that you want to rename all of your “.php3” files to “.php” files. How you do this with minimal effort? Answer lies in for loop.

for old in *.php3; do cp $old `basename $old .php3`.php; done

Thats all there is to it. Let us say you need to rename index.php3 to index.php. The way above snippet works is that it loops through current directory and finds all the files with extension “.php3” and processes ’em one by one. In our index.php3 file example, it finds index.php3 file, does a cp index.php3 `basename index.php3 .php3`.php <- basename returns “index” so you add .php to it and now you are left with index.php. Of course you can do mv command if you want to just move the file to new name. I would suggest doing cp first to make sure things work the way you want ’em to.