0

beginner here. I have a script called

updateTf2.sh 

It's contents

#!/bin/bash
/etc/init.d/srcds stop
./steamcmd/sh +login anonymous +force_install_dir ./tf2 +app_update 232250 +quit
/etc/init.d/srcds start

Located here

~/home/user/updateTf2.sh

If I run ./updateTf2.sh from terminal it asks for a password, I type it in, and the script runs successfully.

When I put it in sudo crontab -e like this

10 9 * * * /home/user/updateTf2.sh

It doesn't run.

What am I doing wrong? I've seen simular tickets about this topic on here but have not seen a clear answer. Thanks for the help.

2 Answers2

2

The commands executed by cron don't have a terminal connection, so they cannot interactively ask for user responses. If the desired remote server asks for a password with anonymous login you will have to use another mechanism to authenticate the program steamcmd.sh, like configuring it to use some Steam AppID as depicted in How to install and use SteamCMD.

Fjor
  • 314
  • 2
  • 10
0

This is a very very common mistake. You need to use the full path in scripts (rather then the relative path).

chron runs with sh using minimal environmental variables.

Panther
  • 104,528