Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running google colab every day at a specific time

I recently have built a Python program that runs on Google Colaboratory, I need to run the program every day at a specific time, So Is there any way to schedule it to run on Google Colab?

like image 761
Sado Avatar asked May 12 '20 21:05

Sado


People also ask

Can Google Colab be scheduled?

You can use colabctl to run your Google Colaboratory notebooks from the command line, on a schedule if you wish.

How do I automatically run Colab notebook?

Firefox and Chromium add-on/WebExtension to automatically connect, reconnect and optionally run the first cell of notebooks in Google's Colaboratory (Colab) service.

Can you work on Google Colab at the same time?

Unfortunately, Colab is not short for Collaboration. Colab notebooks can be shared with other users and opened by multiple users at a time. If one person makes a change, the others will be able to see the change after a short delay.


3 Answers

You need to create a notebooks.csv listing all the Colaboratory URLs. Then use colabctl to run each notebook (In order, synchronously mentioned in the CSV) and then pauses for a period of n seconds of time before running them again.

You can then run python colabctl.py <end-string> <sleep-seconds>,

There's a gCookies.pkl file in the repo. Ensure that your local Python version is the same one as used to create this serialized pkl file.

Ref: https://github.com/TensorTom/colabctl

Now that we have a notebook and script ready, next is to be able to SSH into Google colab.

  • create an account on ngrok.com
  • Copy and paste below code in colab which installs ngrok and creates a tunnel for us

Source : https://gist.github.com/yashkumaratri/204755a85977586cebbb58dc971496da#file-google-colab-ssh

  • Now, on your local machine, open terminal and SSH to connect to the Colab System.

ssh [email protected] -p <port_num_generated_above>

Now you have access to the whole system through SSH terminal. And can continue to use colabctl to any other corn script on local environment to execute your remote colab script.

like image 179
Prakhar Agarwal Avatar answered Oct 16 '22 15:10

Prakhar Agarwal


If you are willing to pay for this, you can use the Google Cloud scheduler:

https://cloud.google.com/scheduler

Related links for setup details:

https://minimaxir.com/2018/11/cheap-cron/

https://cloud.google.com/scheduler/docs/quickstart

If not, in addition to the previous answer, you can consider moving the script to your local environment and using Task Scheduler.

like image 6
Donald S Avatar answered Oct 16 '22 15:10

Donald S


You can use colabctl to run your Google Colaboratory notebooks from the command line, on a schedule if you wish. Simply add colabctl.py to a cron job.

Note: If you want to run it on a headless server, you will first need to run it once from your desktop to save your login cookie to the pickle file and then upload that pickle to your server along with colabctl.

like image 2
Sy Ker Avatar answered Oct 16 '22 16:10

Sy Ker