Programming :: Shell Script That Will Automatically Get Executed On Logging In?
May 29, 2011
I want a script to get executedutomatically whenever I login.Code is simple:Quote:dateYEs! it prints the date on the screen.I read somewhere that there is login.sh shell script which get executed automatically whenever one opens console.But how to insert the above code into it.?Also, we can put our command in $HOME/.bashrc and it will get executed everytime I start the interactive shell.
I have some simple shell scripts that perform backups and I was wondering how do I add logging? More specifically writing to a log file if any part of the script fails. An example of what my shell scripts look like:
I would like to develop a shell script that would automatically run a backup program and then shutdown the computers, but I do not know the first thing about script development or even writing scripting.
The two shell scripts (t1prog and t2prog) are given below they are working fine. The input for the first program is 't1.det' and for second program is 't1.rnaml'. These two input files are in 'dir1' folder. I am executing the shell like 'sh t1prog > t1out' and 'sh t2prog > t2out' from this directory only. Then I am executing a java program 'java RNA'; for this, t1out and t2out are input files used in the program and I am getting the final output on screen.
The input files 't1.det' and 't1.rnaml' are in different folders with same name and with different values. Each folder specifies one gene sequence input files.
In mfold directory there are 5 directors and each directory contains these input files as shown below cd mfold dir1 dir2 dir3 dir4 dir5 cd dir1 t1.det t1.rnaml
for inputs in different directories and executing these and redirecting the final ouput after executing 'java RNA' statement to a file is needed.
I am facing a problem in Windows due to a virus called Newfolder.exe which creats files with the same name as it's parent directory and an extension .exe and this happens for every directory in the entire hierarchy in the infected pen drive. The antivirus detects them, but is sucking slow. So I thought this is a good opportunity to use the concepts of the all mighty shell script to remove those as they follow the same pattern. Say my complete path is
The virus would have created an file with complete paths
If fol1 has two more directories fol11 and fol12 Then there would be two more .exe(virus created) in the following path
I am sure this is somewhere in the forums but since I don't know any of the buzz words associated with what I am trying to doI haven't had any lucksearching.Here's the deal:I have 1 physical drive. On it, I have a partition for XP, a partition for Karmic and a partition for all my data so I can share between XP and Karmic.When I boot in Karmic, I need to select the data drive (called SHAREDDRIVE) and enter my password before any of my apps can access the data. My question is: Is there a way to automatically connect / log onto the SHAREDDRIVE during bootup so I don't have to remember (this is VERY difficult for me!!!) manually log onto it?
I've checked and double checked that there is no user and password directive in /etc/my.cnf and ~/.my.cnf but it seems that every time I issue mysql it will drop me into the command line without prompting for a password or giving any pause. Of course, the only table I have access to when doing this is information_schema with read only on most of it and no access on the rest, but I was just wondering where else an auto-login style authentication could be coming from.
I have a couple apps that I cannot figure out how to prevent them from starting automatically upon logging in. They are NOT listed in my Startup Applications under preferences. For example, pidgin. Pidgin automatically starts at each login even though it is not in the startup apps nor can I find an option in pidgin itself. Tomboy is another. I always get an error that tomboy cannot be added to my panel when I restart. The error in the tomboy panel log is that tomboy is already running. Does ubuntu have a hidden "start up" folder like Windows does in the start menu? Where can I clear this file/folder?
I came from Windows and I am want to learn how C++ programs are compiled and executed in Linux. I read in "Thinking in C++" that the linker adds (by default) a startup module to the object files that an application should be made of. Now when I use g++, I can create an single object module out of a single source code file then execute it in the terminal like this:
How can this object file be executed while it doesn't contain the startup module? In Windows, object files usually get combined into an executable file (somthing.exe) then that executable can be executed, is this not necessary in Linux? does the OS perform required actions before it executes that object file?
Some days ago (2015-09-28) I installed Debian testing amd64. Log in as a user failed and instead of the Gnome UI there was a sad face with the text: „Oh no! Something has gone wrong. A problem occurred and the system can't recover.
All extensions have been disabled as a precaution. Log out“.
The relevant output of journalctl (run as root) said:
etc/gdm3/Xsession: cannot connect to brltty at :0 - /etc/gdm3/Xsession: Service 'org.kde.kaccessibleapp' does not exist. - gnome-session: x-session-manager: WARNING: Application 'gnome-shell.desktop' killed by signal 5 - gnome-session: x-session-manager: WARNING: App 'gnome-shell.desktop' respawning too quickly - x-session-manager: Unrecoverable failure in required component gnome-shell.desktop
After some investigating, I found three work-arounds.
(1) Use gdm3-autologin: In /etc/gdm3/daemon.conf, remove the double crosses and insert own user name AutomaticLoginEnable = true AutomaticLogin = <own user name> Disadvantage: Only one user can have access to the Gnome ui. If you log out, you enter the gdm3 greeter and … see above.
(2) Turn off gdm3 by running 'systemctl stop gdm3' as root, log in into a terminal as a user and run startx.
(3) Install package lightdm and make it to the standard display manager with 'dpkg-reconfigure lightdm'. Disadvantage: Energy manager and screensaver settings of the Gnome control center are ignored.
The easiest way, however, especially if there are several users, is logging in via the gdm3 greeter.
I am trying to create a shell script similar to ls, but which only lists directories. I have the first half working (no argument version), but trying to make it accept an argument, I am failing. My logic is sound I think, but I'm missing something on the syntax.
Code: if [ $# -eq 0 ] ; then d=`pwd` for i in * ; do if test -d $d/$i ; then echo "$i:" code....
I have a shell script named as Ping.ksh.Actually this script will ping 100 server for few second and suit a mail to me the server names those are not in online.So i need to run this script 3am,4am and 5am daily. I'm new to this lunix. run this job daily on above mentioned time interval
I was trying to create a shell script which will automatically login to the server 192.168.1.7 and checks if a user exists there or not, if it doesn't exist then it should create the user.I have very little idea about shell scriptThis is what I tried:Quote:
#!/bin/bash pass="sacharje" ssh 192.168.1.7
Now, how to pass that password automatically to the ssh when it asks for the password? (I can't use public key authentication here)
I'm deleting logs after they are backed up. The line below in a script is doing it but I'd like to print the list of files that are deleted into a log file. I tried printf at the end but can't seem to get it to work. I'm not sure how to output that at the end of the string. Also I was looking at man find man and the difference btween -exec and -execdir. I don't understand what it's saying. Is -execdir executing rm m within the /opt/temp/logs directory the difference?
I've created a simple script based menu. This menu will be accessed by only a certain users via ssh.When user logs in, the menu will automatically run. (configured at user's .bash_profile).How do I force the session to close when user hits Ctrl-C or Ctrl-Break ?In a nutshell, I don't want user to have access to shell.
I need to write a bash script that will allow me to manage my "virtual network" (in reality just a bunch of directories and files). I need to obtain something like : I have my own command 'connect'. We can use it in two different modes: user and admin. If I type 'connect adashiu virtual_machine_name, computer will ask about password, if password is correct he will change a prompt to :
after that user can start to use commands reserved only for user mode. Analogically with admin mode: prompt 'admin >' and administrator can only use bunch of commands reserved for him. changing prompt and separated commands for user and admin ?
I've written an Expect script that assists with change management on Cisco devices. The script creates log files for pre-change, the change itself, and post-change. Each log and its commands is triggered by a ! command. For example:
./dochange.exp hostname <script spawns bash, user SSHes to hostname> !PRE
All of this works fine. My big hair-pulling hiccup is that the resulting log files are filled with raw backspace characters! I am using log_file to log the output from the script. I stop and restart logging with a new file when needed. However, the log files are pretty much unusable. After doing some research, it looks like log_file sends output to the file in real-time, unbuffered. When I hit a key, it's immediately sent to the log. What I would like is for only the resulting string to go to the log. If I start to type 'reload' and instead type 'show run', I don't want 'reload' to be listed in the log at all.
My friend has a website whereby once you have logged in on one page, you are redirected to another page, with a url similar to:
the random string changes each time you log in, however the login page has a static url What i was attempting to do is run a script to get some data from the members page (after uve logged in) - however ive been having some trouble in how to do this, as the variable url with the random string will become invalid after a certain time, and i did not want to consantly change it.
While reading through some documentation i read that wget should be able to login to a form login website however ive had no luck, the command i was attempting to use was:
and even both combined. However neither has worked as the html dl'd is simply the login page website. I cannot post a direct link to the website as it is private, however ive looked at the source coding and ive extracted (what i think) is the relevant bit, which is:
I have a situation where I am in a non-interactive shell. I have tried from within my non-interative shell to spawn an interactive shell but my output still does not goto me. Isn't there a way I can somehow go into /proc or somwhere and make the output my /dev/tty1? Or some way else to remedy this?The situation arises because I drop from my restricted shell environment (a sort of CLI interface), into the actual Linux shell. I cannot change the code of the CLI environment I am just faced with being in the linux shell environment and its non-interactive. Its very annoying to have to put > /dev/tty1 after every command I type.
Not to mention it seems damn near impossible to get pagers like more and less to work properly when your in a non-interactive shell.
I don't know if this the right section but in anycase the question is:- I made a script containing a never ending loop doing : sleep X then command Y', the problem is:can I start this script from init.d without the effect of blocking forever the boot process ?Or is better to insert a specific entry in inittab ?
I have a syslog-ng running and kernel build of 22.214.171.124 I use a syslog API in my program with facility LOG_LOCAL5 and and levels debug err and crit and info. when I ran on the older syslog facility I had everything logged fine as I intended. now I have written these rules into the syslog-ng.conf: