General :: Getting Back To "stdin" After Redirecting A File To A Particular Program?
Nov 22, 2010
I need to achieve a particular effect using bash's redirection facilities.I know that I can redirect a file to some program's standard input:[user@host]$ application < file.txtThe thing is, I'd like to know can I regain control of this program's input after the file content's have been passed to it. In other words, I'd like to run a command similar to the above, and then, instead of the termination of the application, I'd want it to wait for further commands from standard input (keyboard).
As I write this question, it occured to me that I could probably write another application (or a script), that would at first write some data to standard output and then act as echo, like:[user@host]$ stdin_proxy.sh | applicationWould it work, and is there any better way to do so? There are a bunch of Googleable tutorials covering this issue, but they all amount to one advice - "reopen the stdin after the file contents have been read".
View 1 Replies
ADVERTISEMENT
Nov 24, 2010
I'm trying to write a program that will fork a series of FTP sessions. For each session, there should be separate input and output files associated with stdin and stdout/stderr.
I keep reading how I should be able to do that with dup2() in the child process before the execl(), but it's not working for me. Could someone please explain what I've done wrong? The program also has a 30-second sniper alarm for testing and killing of FTPs that go dormant for too long.
The code: (ftpmon.c)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
[code]....
The output:
$ ftpmon
Connected to gila-crstest.gilacorp.com (172.16.20.8).
220 (vsFTPd 2.0.1)
ftp> waitpid(): Interrupted system call
Why am I getting the ftp> prompt? If the dup2() works, shouldn't it be taking input from my script and not my terminal? In stead, it does nothing, and winds up getting killed after 30 seconds. The log file is created, but it's empty after the run.
View 3 Replies
View Related
Nov 20, 2009
i'm trying to redirect the output of a command to the input of the next command. not sure if i'm going about this the right way. an easy method would be just to store the output of the previous command in a file and redirect input to read that file, but i'm curious to see if this can be done without writing to any files.
View 9 Replies
View Related
Aug 8, 2010
I'm working on an application used for backup/archiving. That can be archiving contents on block devices, tapes, as well as regular files. The application stores data in hard packed low redundancy heaps with multiple indexes pointing out uniquely stored, (shared), fractions in the heap.
And the application supports taking and reverting to snapshot of total storage on several computers running different OS, as well as simply taking on archiving of single files. It uses hamming code diversity to defeat the disk rot, instead of using raid arrays which has proven to become pretty much useless when the arrays climb over some terabytes in size. It is intended to be a distributed CMS (content management system) for a diversity of platforms, with focus on secure storage/archiving. i have a unix shell tool that acts like gzip, cat, dd etc in being able to pipe data between applications.
Example:
dd if=/dev/sda bs=1b | gzip -cq > my.sda.raw.gz
the tool can handle different files in a struct array, like:
Code:
enum FilesOpenStatusValue {
FileIsClosed = 0,
FileIsOpen,
[code]....
Is there a better way of getting the file name of the redirected file, (respecting the fact that there may not always exist such a thing as a file name for a redirection pipe).
Should i work with inodes instead, and then take a completely different approach when porting to non-unix platforms? Why isn't there a system call like get_filename(stdin); ?
If you have any input on this, or some questions, then please don't hesitate to post in this thread. To add some offtopic to the thread - Here is a performance tip: When doing data shuffling on streams one should avoid just using some arbitrary record length, (like 512 bytes). Use stat() to get the recommended block size in stat.st_blksize and use copy buffers of that size to get optimal throughput in your programs.
View 4 Replies
View Related
Sep 19, 2011
This seems so simple when doing it from command line but I'm not able to accomplish it inside a script. I am trying to put output of following command into a text file:
CMD= mysql -uroot -psecret -e 'SHOW SLAVE STATUS G;'
FIL=~/replication-`date +%F`.txt
MAILTEXT=~/mailtext.txt
touch $FIL
$CMD > $FIL
Where FIL is a variable that contains path of the file to which to output command. I am running this command in a shell script from where I want to email contents of $FIL as attachment using mutt. But I am always getting 0 byte file. Also if I examine in directory the file is of 0 byte length.
View 3 Replies
View Related
May 22, 2010
I've got a C program that I've added some 'printf' statements to monitor a couple of variables. When I run this program manually or from a script, the output is displayed on screen. However, I need to change various variables in the 'test.c' file, run 'make clean' and 'make' a few hundred thousand times. I'm using a script to read the variables in and then using sed to do in-place edits of the file. Unfortunately, with this amount of iteration, it is getting rather tired!
Anyway, I've created a script that is working as long I respond to prompts. I've tried the following to no avail: Code: /path/to/script > /tmp/output /path/to/script > /tmp/output 2>&1 /path/to/script | tee (no output even after adding the -a option) In my C program, I have the following 'printf' statement: Code: printf ("variable1: $s variable2: $s",var1,var2); What am I missing? I've worked with redirection before and it's always worked out fine, but this one plain stumps!
View 2 Replies
View Related
Apr 20, 2010
I have a script where I want to redirect stdout to the terminal and also to a log file aswell as redirecting stderr to the same log file but not the terminal.I have the following code which I found on the net which redirects both stderr and stdout to a file and the logfile,
Code: if [ -p $PIPE1 ]
then
rm $PIPE1
[code]...
View 3 Replies
View Related
Jan 5, 2015
My printer has stopped working.
1. I am unsure if any system changes have occured. I am sure I must have changed something, but apparently did not document it.
2. Printer does work from other computers
3 Computer was originally wireless connected, but switched to USB. This had no affect. Well I can scan now so great.
4, Printer is HP 6500a.
5. Printer has worked from this computer before
6 This is from cups error log:
D [05/Jan/2015:11:47:48 -0500] [Job 147] Set job-printer-state-message to "Can't copy stdin to temporary file", current level=ERROR
D [05/Jan/2015:11:47:48 -0500] [Job 147] prnt/hpcups/HPCupsFilter.cpp 536: cupsRasterOpen failed, fd = 0
View 7 Replies
View Related
Jul 28, 2011
I've tried searching it and everything I've seen posted on different sites didn't work.i have my program set up in vi.it runs the way it is supposed too but i need it to start in the back ground the program runs fine when running it in the fore ground but i need it to start up and run in the background.
View 3 Replies
View Related
Sep 7, 2010
I'm writing a script to execute bash commands in the PHP CLI. I would like to suppress errors from bash and write my own error message if an error occurs. So far I have this (assuming log.txt doesn't exist!):
Code:
tac log.txt 2>/dev/null
Which works as expected, tac kicks up an error but the error is suppressed, but when I use this:
Code:
tac < log.txt 2>/dev/null
I get:
Code:
bash: log.txt: No such file or directory
The tac error is suppressed but bash still gives me a dirty error.
View 2 Replies
View Related
Jan 13, 2010
When running a program that has infinite loops in the terminal , how to bring back the command prompt ? ( I'm using Fedora core 5 )
View 7 Replies
View Related
Mar 8, 2011
How do I create a program file for a new program?
View 1 Replies
View Related
Jun 7, 2010
I have a command line server that logs to stdout, which I start along the lines of ./server > log.txt
What I want to do is limit the size of log.txt, without modifying the server.
I am assuming there must be some kind of tool already that lets me do this, something like where I can pass in my server, the output file and a size limit? If so, can anyone enlighten me?
View 3 Replies
View Related
Mar 15, 2010
I have a problem when using awk:
e.g: awk '{processing text}' File1 > File2
But when I'm processing the File1, I want to print out some messages to the screen (not the File2). How can I do that?
View 5 Replies
View Related
Sep 26, 2010
I execute an application from a script file and redirect stdin to it from here-doc like this:
my_cli << HERE_DOC
enable
configure
10
exit
exit
HERE_DOC
This works as expected, but I don't see neither the input nor the app output. The application is an interactive prompt written in C. When I interact manually with it, I see the prompt itself and responses to my input, but when I execute the aforementioned script I see nothing. I would like it to print the input and the output as if a real user was typing. Do you know how to achieve that?
View 3 Replies
View Related
Apr 28, 2011
I have the following bash script:
#do some time consuming task here read -p "Give me some input: " input
Now as you might've guessed, if users press some random keys during the "time consuming task," they're read into input as well. how do I clear stdin (or at least ignore it) before I issue the read command?
View 1 Replies
View Related
Jul 28, 2010
I am trying to write input to a shell and get the shell to parse the input that I am writing to it as if a user was typing in commands.
Thus far I have tried echoing some text into the shell's FD for STDIN in /proc/<pid>/fd Whilst this displays the text that I echo, the shell that I am writing to never tries to execute the command that I pass to STDIN. What is the difference between a shell taking STDIN from the user and data written to STDIN by another process e.g. echo ? It appears I am missing something fundamental.
View 5 Replies
View Related
Jun 28, 2010
Is it possible to redirect stdout and stderr from one terminal say /dev/pts/2 to another /dev/pts/3?
I tried the following:
Code:
/dev/pts/2 2>&1 /dev/pts/3&
Then when I run a command the process stops.
View 4 Replies
View Related
Apr 22, 2010
I am running Ubuntu 9.10 and had hoped to use Synaptic to find and install Truecrypt. As Synaptic couldn't find it I downloaded it from [URL]. In case it helps the file is called "truecrypt-6.3a-linux-x86.tar.gz". Apart from not knowing how to get a working program from the .tar.gz file, I don't know whether the installation process sorts out where the file should go and puts it there, or whether I have to create a directory for it and put it there myself.
View 11 Replies
View Related
Mar 16, 2011
I have written a script and included the command
Code:
set -x
to see what happening when i run the script
View 7 Replies
View Related
Jan 30, 2010
after so many times deleting staff for mistake.I am unable to get it back from my external hard drive.I use Ubuntu 8.04 LTS and I have all my staff on external hardrive.
Quote:
Z:----> Media -----> FreeAgent Drive
After delete I knew was her
Quote:
/acousticmetal[1]/
, I did all the search I can possible think of.and i dint have any good look can any one please help me out on this issue?.
View 13 Replies
View Related
Nov 20, 2010
still cant seem to get my file coloring back. normally directories are colored blue, devices yellow etc, ever since i made a change to my shell, and back again, i lost my coloring for directories
View 2 Replies
View Related
Mar 16, 2011
I have 2 debian linux PCson the same subnet/IP Range 192.168.100.0, 1st linux PC IP Address is 192.168.100.1, 2nd linux PC IP Address 192.168.100.9. 1st LINUX PC1st linux PC has 2 network interfaces, eth1 connected to Cisco Router, eth0 is for local LAN. No NAT on Cisco Router, iptables firewall on linux PC.2nd LINUX PC2nd Linux has 2 network interfaces, eth1 is connected to netgear router via bridge modereating a ppp0 connection. eth0 is for local LAN. No NAT on Netgear Router,s firewall on Linux PC.The 1st linux PC (192.168.100.1) is set as the gateway on the network. question -In what way can I redirect all RDP connections from the network via the 1st Linux PC (192.168.100.1) through to the 2nd Linux PC (192.168.100.9)
View 1 Replies
View Related
Dec 5, 2009
I need with JBoss application Server.All I have JBOSS running without any issue.All I want is leading the Jboss logs to be deposited at /var/log/jboss.Say, if there are more than one instance running then create a seperate logs like /var/log/jboss-insta1, /var/log/jboss-insta2 etc.
View 2 Replies
View Related
Oct 31, 2010
kernel 2.6, slackware 12.0mkisofs 2.01If I do 'ls --help|more' all's well. 'mkisofs --help' outputs its help screen, and I can use Shift+PgUp/PgDn to scroll through it. But I can neither pipe it to more or to less, nor redirect it to some file. more is simply ignored. Less, gets into less but only the last screenful is seen. Redirection, i.e. 'mkisofs --help>john.txt' produces an empty file (size= 0).
View 2 Replies
View Related
Dec 1, 2010
I have seen a post where someone was explaining the virtuality of stdout and stderr and that it can be redirected with e.g. 2>file.txt but this apparently is not working for me!
I have a CUPS filter with fprintf(stderr,...)
View 5 Replies
View Related
Jan 18, 2011
I rip the DVDs that I own to my hard disk using a straight-up 1:1 copy, ie to an ISO image. This works great usually, but for this specific DVD that I'm presently trying to rip, I'm being told that the DVD is literally 64GB in size. It's definitely not a BluRay disc, and I don't even have a BluRay drive, so that possibility is ruled out.
I'm not having any problems playing back the DVD file in VLC. I'm running Ubuntu 10.04 64bit. How on earth could it be a 64GB DVD?!? Isn't the max capacity of a DVD around 8 gigabytes? I don't even think that BluRay discs hold 64GB of data!
[Code]...
View 4 Replies
View Related
May 5, 2011
somebody help me how to back up my ubuntu 10.10 file system?
View 1 Replies
View Related
May 12, 2010
I have a complete back-up file (on tgz) of a hardisk. I have already installed a SuSe Linux system on my computer. Can someone please provide a step by step procedure on how to install this back-up files?
View 10 Replies
View Related
May 10, 2011
I would like to get the command and it's output redirected i have tried using the below but my syntax seems to be incorrect .
<<EOF
$(ls)
EOF
View 2 Replies
View Related