Programming :: Script Which Logs Into Devices Over Ssh And Executes Commands?
Mar 23, 2010
I would like to make a script, where I specify my Cisco devices IP addresses as arguments to the script and then this script automatically logs into every one of them and does "show version" and "exit" in every Cisco device. I have public/private key authentication system with my Cisco devices- thats why I'm using ssh-agent and ssh-add. I did something like this:
Code:
#!/bin/bash
if [ -z $1 ]; then
echo USAGE:
echo "$0 IP1 IP2 IP3 IPn"
[code].......
However, it logs nicely into the first device(I'm able to execute IOS commands in this first Cisco device etc) and then does nothing further.
I am trying to write a script that connects to a server and executes some commands on there. Something like this:
#!/bin/sh telnet remote_machine cd /home/some_directory cat a_file_in_current_directory
Unfortunately after login/password I guess the script doesn't jump past the telnet command, until I exit. What do I need to do to make the script start executing commands in the remote shell?
I am trying to create a RS232 C program that executes a series of commands down the line to a robot. Everything seems to work fine, except any sequential write to the serial port. At first I thought it was the UART's buffer being filled too fast, but even with a 50 uS delay it still throws the error.
I want to use a desktop icon shortcut that essentially does this...
Is there a way I can do this? I don't really want to create an alias because I just want it to be an icon I double click to do all of this. But if I have to create an alias in which it does these ocmmands then I use the shortcut to terminal... then it types the alias that is fine also.
I have a computer with a trackpad and a touchscreen. I want to run unclutter if I use the touchscreen, and kill it when I use the trackpad or a USB mouse.
The I'm pretty sure the touchscreen is /dev/input/mouse0, and the trackpad is /dev/input/mouse1
I have a general idea of how this should work, but no idea what tools and commands to use to implement it.
I'm looking for a solution of pattern detection in the logs and then allows to send me an email notification if it detects the previously specified term.I use already Logwatch, but I do not know if it is possible to configure it for that use.
I need help creating a script that makes a log file in wich to save information about every user that uses the ftp command (information like username and date) and the server to wich he is trying to connect.
I would like to ping all my virtual hosts in virtual machine server with a oneliner. For example like this:
Code:
for i in $(seq 1 20); do if [[ $(ping host$i.virtualhostserver.com -c 2 2>/dev/null | grep "2 received") == "2 packets transmitted" ]]; then echo $i; fi; done
The problem is, that I'm afraid my if-sentence is somewhat wrong because it never gets a match even if I know, that host is up.
I'm trying to build a custom setup that requires a flash drive and a CD to both be mounted to root. Applications, boot data, and other static directories are on the CD, while /home, /opt, and /tmp are on the flash drive. Is there a special option I can enter into fstab to allow this? If not, I intend to modify my kernel to allow this, but I'll need to find the sources that control this function.
I have a set of bash scripts that I'm running that automatically build a set of packages for me and redirect their output into logs. Basically, I have a bunch of lines that are something like this: ${CONFIGURE_DIR}/configure &> ${LOG_DIR}/log or cd ${CONFIGURE_DIR} && make &> ${LOG_DIR}/log, etc.
This is supposed to make the entire process silent. However, sometimes with some packages some output leaks to my console (either stdout or stderr). I'm thinking that maybe the configure scripts/make are executing commands within new shell instances that don't inherit my redirect, or something to that effect.
Another reason for thinking this is that in another part of my script I detect errors when running make by testing with "if [ $? -ne 0 ]", and if the redirect leaks to my console and also the leaked output indicates that the build failed ("make: Error" and so on), then my $? test fails (i.e., it thinks that $? == 0, whereas a failed make should return a non-zero value). It's as if my original script can't "see" the results from child commands executed from later scripts.
How can i get full command as and when a partially finish typing in Linux Command prompt. or is there a way i can get the command from history of commands executed automatically when i type instead of opening history and looking for the command?
I've tried instralling the c and c++ compilers on my fedora 13 machine and none of them seem to work. For example. i have this extremely simple c program that i try to compile and nothing works.
I've written a for loop with a counter i and I want to use the value of i within sed to edit certain lines of text within a fortran file.I want the the x=10 will be replaced by x =1(counter from the loop).. and so on.But from the following code my x = 10 is replacing by x = i.So
With the command "tail -300 /var/log/apache2/access.log | less" i can look in the log for the 300 latest visitors from my logfile. and i wanted to ask if it's possiblle to get that command to run from a php file and if yes how ?? how i run system commands in php? i use debian if it matters.
When I try to login as me - it gets pretty far but then something happens and automatically logs out. This happens in Gnome, Kde too. Now - I have no problem logging in a Root. Is there a way I can try to stop the login process before it kicks me out, or is there a way to look at some files to tell me what's going on?
I'm learning GTK , and would like to use Codeblocks, and/or KDEvelop, and compile my c files using that, but always get an error about gtk/gtk.h not found, but can't figure out how to add the commands... I normally type gcc -o Program1 main.c `pkg-config --libs --cflags gtk+-2.0` That's a lot to type every time to compile.. Isn't there an easier way, in KDevelop, Monodevelop, and/or Codeblocks to make this step quicker, by adding some sort of I-/usr/include commands, or something?? thanks in advance, =). I looked online for some results, but didn't come across anything handy..
want to set more text files. They have "tab" differently (3, 4, 6 or 5 characters space).I have to use "sed" or "awk" sette them in the same tab (for example five space haracters).
I am executing a run command in a script after that i need to copy files into a directory which are the inputs for the run,on run a new shell is created and the remaining commands in the script does not execute,wot should i do to execute the remaining commands in the script??
I am trying to administer a small group of ubuntu desktops in my classroom. I can use ssh to perform administrative tasks one at a time on each machine, but I want to automate these tasks through a small number of scripts. I am having trouble with running root commands through a script.
On other distros, I think I would simply ssh into the root account, and run the script. But as an ubuntu user, I have only ever used sudo, and folks at ubuntuforums are understandably hesitant to recommend logging in as root. Instead I am seeing suggestions to disable the password requirement for each specific command I want to run, which does not seem like best practice.
Should I enable the root account, give it a password, and ssh to the root account to run the scripts? To be specific, the scripts will do things like install updates, install programs, add or delete users, configure the desktop, etc.
you have to read from many devices separate devices and make it look like a single one. It sounds very much like a device driver to me, perhaps... but getting my hands dirty with kernel code sounds like a daunting task for me that I've never done it...
Is there a command that can tell me which binary actually executes for some program name? "whereis" seems to do something different.
Specifically, I am trying to hunt down and kill a python 2.6 installation that just won't die.
whereis just seems to be returning anything with "python" in its name, but I want to know which binary thinks it is python 2.6.5. (By the way, I've tried all the above manually, and it isn't any of them)
i need to run a command from a shell script that requires me to answer "Yes" to 2 questions that the command asks before it kicks off. how do i do this? i thought it was something like this.. from inside the parent script:
im pretty sure this is a remedial task for many of you but im having an issue with arrays from a shell script being accessed in an awk command. im pretty good with shell scripting but i am embarrassingly unfamiliar with awk. so here's the meat of the script...
Code:
I am trying to take an input file of ip addresses and corresponding netmasks and put it into a format to be loaded onto a juniper switch. the result should look something like this.. x.x.x.x/netmask using the cidr notation. no matter what subnet is provided though, /32 always gets appended to the end of the ip even when it should be /16, /24, etc... also, the cisco part works fine so that doesnt need any attention.