PDA

View Full Version : SLES 11 SP3 crontab test - touch file



wlourens
16-Mar-2016, 14:05
Hi

I would like to test if crontab is running with a simple continues touch file, but it is not working:

Crontab entry:

01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt


File entry:

hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1046> cat /usr/sap/BHA/HDB00/willem/testcron.bat
#!/bin/bash
touch /usr/sap/BHA/HDB00/willem/testcron.txt

Date of files not updated:

hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1047> ls -ltr
total 4
-rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 13:53 cronout.txt
-rwxrwxrwx 1 bhaadm sapsys 57 Mar 16 13:56 testcron.bat
-rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 15:01 testcron.txt

This is SUSE linux 11.2


Advise will be appreciated.

ab
16-Mar-2016, 14:37
On 03/16/2016 07:14 AM, wlourens wrote:
>
> I would like to test if crontab is running with a simple continues touch
> file, but it is not working:
>
> Crontab entry:

Please use the CODE button to put things like code in un-parsed blocks. I
think the button looks like the '#' symbol below the message text field.

> 01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >>
> /usr/sap/BHA/HDB00/willem/cronout.txt

Please do not name files with the .bat extension; it implies something
that is not case, namely that this file is made for a windows interpreter.
File extensions do not really matter in the Linux/Unix world, but if you
are going to use one, use the right one (.sh in this case).

> File entry:
>
> hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1046> cat
> /usr/sap/BHA/HDB00/willem/testcron.bat
> #!/bin/bash
> touch /usr/sap/BHA/HDB00/willem/testcron.txt
>
> Date of files not updated:
>
> hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1047> ls -ltr
> total 4
> -rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 13:53 cronout.txt
> -rwxrwxrwx 1 bhaadm sapsys 57 Mar 16 13:56 testcron.bat
> -rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 15:01 testcron.txt

Is there a really good reason that permissions are set to 777 on these
files? Maybe it was just for testing to rule out permissions problems,
but this is generally a bad idea. What kind of filesystem do you have
here, and how is it mounted?

> This is SUSE linux 11.2

I presume you mean SUSE Linux Enterprise Server SP2. Just to be clear,
while openSUSE uses the 11.2, 13.1, etc. versioning, SLES only puts the
major version followed by SP whtaever. There are some implied meanings as
a result, but part of the reason I mention it here is that there was an
openSUSE 11.2 way back in the day too, so your versioning could imply an
ancient version of that.

I am not sure why you think the files are not being updated, so please
help me understand what you expected to see above. The timestamp of
testcron.txt is from 15:01, which per your crontab entry is when this
should have run (unless it also ran at 16:01, but there is no way to know
that from what you provided). If your last edits were at 13:56, then this
could have executed at 14:01 (created the file), and then 15:01 (updated
the file) which is what we see above.

I presume you have tested the 'touch' command manually to ensure that
timestamps change as you expect when not using cron. If not, please do so
just in case your filesystem is not going to update timestamps for some
odd reason.

I presume you entered your crontab line using the 'crontab -e' command to
do this as some user. Which user was that? The permissions on your files
make it such that maybe it will not matter (as long as parent directory
permissions are not preventing access to bhsadm or sapsys members), but
knowing for sure is important. When you do your test of 'touch' outside
of crontab, be sure that you use the same user as you expect cron to use.


--
Good luck.

If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below...

georgeston
16-Mar-2016, 15:41
Not sure what is wrong but you can try:

Specify full path of touch in your batch file.

For better debugging, redirect stderr to the same text file, i.e.:
01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt 2>&1



Hi

I would like to test if crontab is running with a simple continues touch file, but it is not working:

Crontab entry:

01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt


File entry:

hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1046> cat /usr/sap/BHA/HDB00/willem/testcron.bat
#!/bin/bash
touch /usr/sap/BHA/HDB00/willem/testcron.txt

Date of files not updated:

hanaprd-mgmt:HDB:bhaadm /usr/sap/BHA/HDB00/willem 1047> ls -ltr
total 4
-rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 13:53 cronout.txt
-rwxrwxrwx 1 bhaadm sapsys 57 Mar 16 13:56 testcron.bat
-rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 15:01 testcron.txt

This is SUSE linux 11.2


Advise will be appreciated.

jmozdzen
16-Mar-2016, 18:56
Hi Willem,

> 01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt

I advise against leading zeros, as these typically are meant to specify octal numbers... starting on "08" might lead to an interpreter error (as "08" is no valid octal number).

The above line (which is most likely from the user crontab, not from /etc/crontab) seems to actually work: It specifies to run the command on every full hour plus one minute. Looking at your "ls" output shows

> -rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 15:01 testcron.txt

hence the file was last updated/touched on 15:01, which seems fine.

If you want to touch the file on every minute, please use "* * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt"

Regards,
Jens

wlourens
18-Mar-2016, 06:21
Hi Willem,

> 01 * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt

I advise against leading zeros, as these typically are meant to specify octal numbers... starting on "08" might lead to an interpreter error (as "08" is no valid octal number).

The above line (which is most likely from the user crontab, not from /etc/crontab) seems to actually work: It specifies to run the command on every full hour plus one minute. Looking at your "ls" output shows

> -rwxrwxrwx 1 bhaadm sapsys 0 Mar 16 15:01 testcron.txt

hence the file was last updated/touched on 15:01, which seems fine.

If you want to touch the file on every minute, please use "* * * * * /usr/sap/BHA/HDB00/willem/testcron.bat >> /usr/sap/BHA/HDB00/willem/cronout.txt"

Regards,
Jens



Thanks Jens, this solved it!!! :D