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

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

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

Inlägg 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?
Senast redigerad av 2 ubot, redigerad totalt 14 gång.
gusse02
Inlägg: 258
Blev medlem: 16 maj 2008, 12:17
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS

Re: Ubuntu 9.10 och cron job bugg?

Inlägg 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.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Ubuntu 9.10 och cron job bugg?

Inlägg 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?
gusse02
Inlägg: 258
Blev medlem: 16 maj 2008, 12:17
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS

Re: Ubuntu 9.10 och cron job bugg?

Inlägg av gusse02 »

Ja de har olika hemkataloger.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Ubuntu 9.10 och cron job bugg?

Inlägg 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?
Skriv svar

Återgå till "Terminalforum"