Sida 1 av 1

Ubuntu 9.10 och cron job bugg? [LÖST]

Postat: 03 nov 2009, 12:53
av ubot
Jag har ett par skript som jag kör med cron job i Ubuntu. Problemet är att alla skript fungerade finfint i Ubuntu 9.04, men sedan jag installerade Ubuntu 9.10 från scratch så har skripten slutat att skriva echo "bla bla" > /home/username/logfile.txt och även slutat att ta bort vissa filer med rm filenamn.txt. Vad är det här? Varför fungerar inte mina cron job som förut? Jag använder user cron job. Det kanske var så att jag använde root cron job förut, vet inte. Hur som helst, här är min kod och resultatet från två olika set -x exec &> loggfil.txt:

Kod: Markera allt

**********************************************
Script code:
***********************************************

#!/bin/bash

set -x

exec &> /home/username/Desktop/loggeliloggfil2.txt

date=$(date +%T_%y%m%d)
today=$(date +%y%m%d)
yesterday=$(date +%y%m%d -d "yesterday")
#n=$(( 0 ))

if [ ! -f filter_$today.txt ];
then
touch filter_$today.txt
fi

grep -xFv -f filter_$today.txt list_of_members.txt | sort | uniq | sort -R | head -80 > input.txt
sort input.txt >> filter_$today.txt

if [ -f filter_$yesterday.txt ];
then
rm filter_$yesterday.txt
fi

******************************************************
Result of exec when running as user cron job:
*****************************************************

+ date=10:25:01_091103
++ date +%y%m%d
+ today=091103
++ date +%y%m%d -d yesterday
+ yesterday=091102
+ '[' '!' -f filter_091103.txt ']'
+ touch filter_091103.txt
+ grep -xFv -f filter_091103.txt list_of_members.txt
+ sort
grep: list_of_members.txt: No such file or directory
+ uniq
+ sort -R
+ head -80
+ sort input.txt
+ '[' -f filter_091102.txt ']'
+ read url
+ rm code.txt usernames.txt raw_members.txt

******************************************
And this is the result of exec when running by hand writing ./script in Terminal:
************************************************

++ date +%T_%y%m%d
+ date=10:39:11_091103
++ date +%y%m%d
+ today=091103
++ date +%y%m%d -d yesterday
+ yesterday=091102
+ '[' '!' -f filter_blogs_091103.txt ']'
+ grep -xFv -f filter_091103.txt list_of_members.txt
+ sort
+ uniq
+ sort -R
+ head -80
+ sort input.txt
+ '[' -f filter_091102.txt ']'
+ rm filter_091102.txt
+ read url
Det som är skumt är att rm filter_$yesterday dvs rm filter_091102 inte fungerar när jag kör genom user cron job, men det gör det däremot när jag kör skriptet manuellt mha ./skript i Terminalen. Samma sak händer i ett annat skript där en rad ska skriva en loggfile med echo "bla bla" > /home/mitt_användarnamn/loggfil.txt. Den raden fungerade fint med ett cron job i Ubuntu 9.04, men inte i Ubuntu 9.10? Raden fungerar perfekt om jag kör skriptet manuellt. Vad är det här?

Re: Ubuntu 9.10 och cron job bugg?

Postat: 03 nov 2009, 16:21
av gusse02
Det ser ut som du inte är där du tror att du är. Släng in en pwd nånstans för debug. Den hittar ju inte dina filer ser det ut som.

Re: Ubuntu 9.10 och cron job bugg?

Postat: 03 nov 2009, 20:55
av ubot
gusse02 skrev:Det ser ut som du inte är där du tror att du är. Släng in en pwd nånstans för debug. Den hittar ju inte dina filer ser det ut som.
Ja, jag håller med dig, men allt fungerade ju utan minsta problem i Ubuntu 9.04. Den enda skillnaden mellan hur jag kört skripten i Ubuntu 9.10 och 9.04 är att i 9.10 kanske jag körde som root cron job medan jag nu använder user cron job. Ska det verkligen göra någon skillnad?

Edit:

Ja, där har vi det! pwd säger att jag är i min $HOME, medan när jag kör manuellt i Terminalen med ./script så är jag i en underkatalog till $HOME. Då förstår jag helt klart att filerna inte hittas osv. Tack! Det är lite konstigt att det fungerade i Ubuntu 9.04 iofs, men det kanske var för att jag ev körde med ett root cron job medan jag kör med user cron job nu. Jag har ju inte ändrat något i skripten och anropar med samma rad i con job så jag tycker ju att om filerna hittades då så... Aja, strunt samma, men nu förstår jag iaf.

Hur ställer man sig bäst i rätt katalog, med cd /home/ubot/scripts på rad 2 i skriptet eller?

Dessutom finns ett problem kvar. Varför fungerar inte echo "bla bla bla" > /home/ubot/Desktop/logfile.txt när jag kör raden sist i skriptet mha cron job? När jag kör manuellt i Terminalen med ./skript så skriver skriptet en logfile.txt. Här har jag ju angett en absolute path så då tycke rman att det borde fungera oavsett vad pwd är, eller?

Re: Ubuntu 9.10 och cron job bugg?

Postat: 03 nov 2009, 21:37
av gusse02
Ja de har olika hemkataloger.

Re: Ubuntu 9.10 och cron job bugg?

Postat: 03 nov 2009, 21:42
av ubot
gusse02 skrev:Ja de har olika hemkataloger.
Jo, jag vet, men det är ju skumt om alla filer ligger i /home/ubot/scripts och om root cron job hittar filerna men inte user cron job, eller?