run command at interval on debian - linux

So i have a debian web mapping server for my minecraft world. In order for the map to display the correct information two commands have to be run periodically. I have tried following a few guides to use crontab but so far have failed (and even had to restore the debian image -.-) I am new to linux as a whole and need a step by step guide in plain english to do the following.
run:
"overviewer.py --config /home/mc/test.cfg"
every 30 minutes on the hour and
"overviewer.py --config /home/mc/test.cfg --genpoi"
every five minutes on the hour
It seems pretty straight forward but I have literally spent the better part of two months doing this cause I keep screwing things up.
Thanks for any help!

Remember if you are using crontab, to use the full path to the python script. In debian you can type pwd in the terminal to show the path to your current location.
Assuming the python script is also located in /home/mc/ you should use the command:
/home/mc/overviewer.py --config /home/mc/test.cfg
I would suggest you look into crontab again, the ubuntu help page has alot of information. https://help.ubuntu.com/community/CronHowto
For every 30 minutes:
0,30 * * * * /home/mc/overviewer.py --config /home/mc/test.cfg
And for every 5 minutes:
*/5 * * * * /home/mc/overviewer.py --config /home/mc/test.cfg --genpoi

Related

Executing a node script via crontab

can anyone help me figure out why my cron scheduling doesnt work?:
0 8 * * * /usr/bin/node /home/globein_ext/mysql-slack-bot/index.js
I'm trying to run a node app each day at 8am. I locate node first and then access the file I want run. Nothing seems to happen though.
Thanks for any and all help!

Run PM2 cron only on a scheduled time

I run one of my node.js command using the following command:
pm2 start sample.js --cron "0 1 * * *" -- SAMP
But the problem is this program run twice. First one is when I execute the command and send one is at 1:00 AM(Which we want).
So my query is how can set the cron so that this program runs at only once (At 1:00 AM only).
My suggestion to you is to use crontab for this task. This is exactly what cron was designed for, and not what pm2 was designed for.
As the comment above states, the --cron option only specifies when the app should be restarted, --cron cannot be used to schedule the running of an app. In the cases where we need to run a node app on a specific time table and don't need all of the fancy pm2 capabilities of auto-restarting and clustering, we simply use crontab.

cron Job Won't Run on R Scripts on Google Compute Engine

Following these instructions I got R-Studio Server running on a Google Compute Instance: http://code.markedmondson.me/launch-rstudio-server-google-cloud-in-two-lines-r/
When I open a terminal from this RStudio-Server I note that man, ps, vi, cron are all absent.
bash: ps: command not found
My goal is to have a simple cron job periodically run an R-Script.
I manually installed cron with:
sudo apt-get update
sudo apt-get install cron
Still, I can't get cron to run this test:
cmd <- cron_rscript("/home/law9723/now_to_file.R")
cron_add(cmd, frequency = "*/1 * * * *", id = "now_to_file", description = "Write now to file every minute")
-Clearly Confused
I got things to work eventually by using these very helpful instructions: https://yuhuisdatascienceblog.blogspot.ca/2017/07/setting-up-r-studio-server-on-google.html
Using absolute path names with everything associated with cron is sage advice.
I think when I created a vm with this command the sandbox that Rstudio-server lives in is very minimal. Hence, no vi, man, cron, ps...
gce_vm(template = "rstudio",
name = "my-rstudio",
username = "mark", password = "mark1234",
predefined_type = "n1-highmem-2")
I have had success using the rstudio addin. A reference is
http://www.bnosac.be/index.php/blog/51-new-rstudio-add-in-to-schedule-r-scripts.
I am also under the impression that you have to start cron with
sudo cron start
As in https://cran.r-project.org/web/packages/cronR/README.html.
I install the packages shinyFiles, miniUI and cronR when I first get into the Rstudio on GCE after using googleComputeEngineR locally like you. Then "Schedule R scripts on Linux/Unix" will appear in the add-in list.

Execute Node.JS script via crontab on OS X

I have been trying to figure out how to use crontabs on my mac OS X I have a node script written that I would like to be able to execute in a scheduled manner. Here is the line I am using in my crontab file.
30 * * * * /usr/local/bin/node /Users/pmanca/Google Drive/JavaScript/code/Peter/marketing-tests/testBackup.js
It doesn't appear to be executing though. Can anyone see what I am doing wrong? Also is there another way on a mac or linux server to accomplish what I'm looking for? Also can you use the same line for a crontab job in linux as well(besides the file paths needing to change)?
You can use one of the two npm packages, cron or agenda
Both work on linux and OS X. Cron is best if your tasks are lightweight and you don't need your jobs to be persisted into db. Agenda uses mongodb for persistence.
You can configure a job in cron as:
var CronJob = require('cron').CronJob;
var job = new CronJob({
cronTime: '00 */30 * * * *',
onTick: function() {
/*
* Runs every 30 minutes, every hour, every day, all week
*/
},
start: false,
timeZone: 'America/Los_Angeles'
});
job.start();
To run in background on server you can run it with forever
Remember cron has an additional 6th place to the left for seconds. Otherwise the syntax is same.
By default cron process doesn't have the required permission to access the disk in macos. So, you should allow full access disk to cron process. For this one, add /usr/sbin/cron to your allowed full disk access process under Security & Privacy. Further information can be seen in How to Fix Cron Permission Issues in MacOS Catalina & Mojave

Cronjob doesn't execute (Cygwin)

I'm using Cygwin to synchronize folders between a Windows-Machine and an Apache server. It works fine if I execute the commands, but I can't get Cronjob to work properly.
I tried to create a simple mkdir command as a cronjob and when I save the crontab, it successfully installs it.
My Cronjob is:
*/1 * * * * mkdir newfolder
I wait for the new folder to pup up, but nothing happens.
In the cron.log it says:
Cron 7072 fork: child -1 - CREATEPROCESSW failed for c:cygwin/usr/sbin/cron.exe, errno 30
Can anybody help?
I solved the problem: (drumroll)
I reconfigurated it... often!
I kept trying "cron-config" time after time and now it works. I'm still not any smarter what I configurated wrong/right.
I'm sorry for the vague help if anybody with the same problem stumbles upon this.

Resources