MaBoNi skrev:Hmmm umiddelbart har filen alle rettigheder (den fik en chmod 777 da jeg tænkte det måske kunne være det):
Kode: Vælg alt
-rwxrwxrwx 1 ubuntu ubuntu 309 2011-06-20 22:21 /home/ubuntu/scripts/mysql_backup.sh
Selve scriptet der køres er:
Kode: Vælg alt
dato=`date -I`
mysqldump -uroot -pMitMySQLRootPassword --all-databases > /home/ubuntu/backups/mysql/mysql_backup_$dato.sql;
gzip /home/ubuntu/backups/mysql/mysql_backup_$dato.sql
rsync -av --recursive --times /home/ubuntu/backups/mysql/ "username@xxx.xxx.xxx.xxx::Backup_System/BackupFolders/UbuntuServer
Er der noget der ser forkert ud??
Er det i selve .sh filen jeg skal starte med #!/bin/bash eller i min crontab??
det er i selve scriptet at det skal stå på første linie ved første tegn, så dit script bliver:
Kode: Vælg alt
#!/bin/sh
exec /bin/bash $0 ${1+"$@"}
dato=`date -I`
mysqldump -uroot -pMitMySQLRootPassword --all-databases > /home/ubuntu/backups/mysql/mysql_backup_$dato.sql;
gzip /home/ubuntu/backups/mysql/mysql_backup_$dato.sql
rsync -av --recursive --times /home/ubuntu/backups/mysql/ "username@xxx.xxx.xxx.xxx::Backup_System/BackupFolders
Jeg skrev lige #!/bin/bash om.
De 2 øverste linier er den mest skudsikre metode til at starte et script med en eller anden fortolker. Den virker f.eks. også på BSD, Mac OS X, og UNIX.
Det kryptiske $0 "${1+"$@"} er en ekspantion af argumenter, så nu kan du overføre argumenter til dit script.
Du kan også udelade det, men nu ved du hvordan det gøres.
Lidt sikkerhed, eller hvad jeg ville gøreJeg ville sætte filens rettigheder til 755. Alle og enhver skal ikke have lov til at rette i filen. Kun ejeren af filen.
Filen bør ejes af root:
Kode: Vælg alt
sudo chown root /home/ubuntu/scripts/mysql_backup.sh
Gruppen bør være root:
Kode: Vælg alt
sudo chgrp root /home/ubuntu/scripts/mysql_backup.sh
Den kan læses og udføres af alle, men den kan ikke slettes og rettes af alle, og den skal læses,rettes i, og køres af ejeren.
Det er 755:
Kode: Vælg alt
sudo chmod 755 /home/ubuntu/scripts/mysql_backup.sh
/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og
indlejede systemer, hvor indlejrede systemer
er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags