View previous topic :: View next topic |
Author |
Message |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Thu Feb 18, 2016 9:48 am Post subject: crontab not working ? [solved] |
|
|
I'm trying to scan my network with the following crontab?
I type crontab -e and edit the file to test for every minute:
* * * * * /bin/bash /home/cwc/bash/logfile.sh
This is the script I'm trying to run and it works just using command line:
#!/bin/sh
NOW=$(date +"%Y-%m-%d-%S");
LOGFILE="log-$NOW.txt";
nmap -sP 192.168.1.0/24 > /home/cwc/html/logs/$LOGFILE; _________________ Without diversity there can be no evolution:)
Last edited by cwc on Sat Feb 20, 2016 5:28 pm; edited 2 times in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Syl20 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/10625062156fe89c57a2d3.png)
Joined: 04 Aug 2005 Posts: 621 Location: France
|
Posted: Thu Feb 18, 2016 10:11 am Post subject: Re: crontab not working ? |
|
|
Is cron daemon started ?
Off-topic, but :
cwc wrote: | * * * * * /bin/bash /home/cwc/bash/logfile.sh
(...)
#!/bin/sh |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Thu Feb 18, 2016 1:33 pm Post subject: Re: crontab not working ? |
|
|
CneGroumF wrote: | Is cron daemon started ?
Off-topic, but :
cwc wrote: | * * * * * /bin/bash /home/cwc/bash/logfile.sh
(...)
#!/bin/sh |
|
I think so:
ciclo ~ # /etc/init.d/cronie start
* WARNING: cronie is already starting
ciclo ~ # ps ax | grep cronie
15185 pts/0 S+ 0:00 grep --colour=auto cronie
I assumed I was using cronie? _________________ Without diversity there can be no evolution:) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
szatox Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 27 Aug 2013 Posts: 3498
|
Posted: Thu Feb 18, 2016 5:30 pm Post subject: |
|
|
Is the script executable?
Is $PATH provided for your script? (try #! /bin/bash -l ) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Fri Feb 19, 2016 12:09 am Post subject: |
|
|
szatox wrote: | Is the script executable?
Is $PATH provided for your script? (try #! /bin/bash -l ) |
This runs fine from a normal user:
/bin/bash -l /home/cwc/bash/makelogs.sh
One thing I did notice is it will run as a cron once if I restart cronie. _________________ Without diversity there can be no evolution:) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
gordonb3 Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 01 Jul 2015 Posts: 185
|
Posted: Fri Feb 19, 2016 9:34 am Post subject: |
|
|
Looks like you're running systemd. That rather cryptic message means that you can't use the initd scripts on such a system. You need to use systemctl to control the services and units. It does seem that your cron daemon stops after running your job once. You should probably investigate if it keeps running when you remove certain jobs. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Syl20 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/10625062156fe89c57a2d3.png)
Joined: 04 Aug 2005 Posts: 621 Location: France
|
Posted: Fri Feb 19, 2016 10:20 am Post subject: Re: crontab not working ? |
|
|
gordonb3 wrote: | Looks like you're running systemd. |
Ah ah. As I don't know if so, I'll assume below that you use openrc. If not, forget my post, it will be useless for you.
cwc wrote: | ciclo ~ # ps ax | grep cronie
15185 pts/0 S+ 0:00 grep --colour=auto cronie |
No, cronie isn't started. The lonely related process is the "grep" command you just launched.
As rc says the service is started, but the process isn't, you need to reintialize the status of the service, to be able to restart it.
Code: | # service cronie zap
# service cronie start |
Quote: | I assumed I was using cronie? |
If the /etc/init.d/cronie script exists, I think so. To be sure :
Code: | # equery l '*cron*' |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Fri Feb 19, 2016 1:26 pm Post subject: |
|
|
Thanks for the lines:
Ya . I'm one of the evil ones running systemd
# systemctl | grep cronie
cronie.service loaded active running Command Scheduler
Here's what I have:
Code: |
# service cronie zap
* Manually resetting cronie to stopped state
ciclo ~ # service cronie start
* WARNING: cronie is already starting
ciclo ~ # equery l '*cron*'
* Searching for *cron* ...
[IP-] [ ] sys-process/cronbase-0.3.7-r1:0
[IP-] [ ] sys-process/cronie-1.5.0:0
ciclo ~ #
|
_________________ Without diversity there can be no evolution:) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Sat Feb 20, 2016 5:07 pm Post subject: |
|
|
some how things are now working:
#crontab -e
*/5 * * * * /bin/bash -l /home/cwc/bash/makelogs.s
/5 works better.
Here is my script:
NOW=$(date +"%Y-%m-%d-%s");
LOGFILE="log-$NOW.txt";
nmap -sP 192.168.1.0/24 >> /home/cwc/html/logs/$LOGFILE;
I am not 100% sure what bash -l does though. _________________ Without diversity there can be no evolution:) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Sat Feb 20, 2016 5:28 pm Post subject: |
|
|
I don't understand this:
/bin/bash -l /home/cwc/bash/makelogs.sh
From man bash
-l Make bash act as if it had been invoked as a login shell (see INVOCATION below).
A login shell is one whose first character of argument zero is a -, or one started with the --login option.
I'd appreciate an explanation.
Thanks for all the help. _________________ Without diversity there can be no evolution:) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
szatox Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 27 Aug 2013 Posts: 3498
|
Posted: Sat Feb 20, 2016 8:22 pm Post subject: |
|
|
Quote: | I don't understand this:
/bin/bash -l /home/cwc/bash/makelogs.sh | So ugly... You launch bash for login and then launch bash again inside the script to execute the commands. You can pass parameters in the #! line. Handy thing (imagine '#! /bin/sed -f' for text-processing scripts)
Anyway, see the difference below:
Code: | # cat test.sh
#! /bin/bash
echo '### normal shell launched by cron ###'
whoami
env
exec /bin/bash -l << EOF
echo '### login shell launched by cron ###'
whoami
env
EOF |
Code: |
# cat test.log
### normal shell launched by cron ###
root
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
PWD=/root
HOME=/root
SHLVL=2
LOGNAME=root
_=/usr/bin/env
### login shell launched by cron ###
root
MANPATH=/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.25.1/man:/etc/java-config-2/current-system-vm/man/:/usr/lib64/erlang/man
SHELL=/bin/sh
ANT_HOME=/usr/share/ant
USER=root
~~/ SNIP /~~
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3
INFOPATH=/usr/share/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.25.1/info
~~/ SNIP /~~
_=/usr/bin/env
|
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
cwc Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/214155964644256c4d3adfc.jpg)
Joined: 20 Mar 2006 Posts: 1402 Location: Tri-Cities, WA USA
|
Posted: Sat Feb 20, 2016 11:11 pm Post subject: |
|
|
that is epic szatox
Thanks.
Now another question?
Why the EOF
Code: |
#! /bin/bash
echo '### normal shell launched by cron ###'
whoami
env
exec /bin/bash -l << EOF
echo '### login shell launched by cron ###'
whoami
env
EOF
|
_________________ Without diversity there can be no evolution:)
Last edited by cwc on Sun Feb 21, 2016 3:48 am; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
szatox Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 27 Aug 2013 Posts: 3498
|
Posted: Sat Feb 20, 2016 11:36 pm Post subject: |
|
|
Redirect uses it.
A few tricks with redirecting standard input:
Code: | command < name_of_an_input_file
command << END_TAG
multi
line
input
END_TAG
command <<< "string"
command <( process substitution - run this command in bracket first and use its output )
command1 | command2 # the old, good, well known pipe. Mind that it's not equal to the above: the one in brackets runs sequentially.
# command2 runs in parallel, but it also runs in a subshell.
# This affects propagation of variables! |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|