Top Banner
Automating Your Daily Tasks with Scripting Adler Hsieh RubyConf Taiwan 2015-9-11
43

Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Jan 22, 2018

Download

Software

Adler Hsieh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Automating Your Daily Tasks with Scripting

Adler Hsieh

RubyConf Taiwan

2015-9-11

Page 2: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Agenda

• What is Scripting

• Why Scripting

• Several Cases

• Script Management

• Q & A

Page 3: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Only Basic Concept

Page 4: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Who am I

• Adler Hsieh

• Software Engineer at OneAD

• Ruby, JavaScript, PHP

Github: adlerhsieh

Twitter: @adler_hsieh

Blog: http://motion-express.com

Page 5: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

What is Scripting

Page 6: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Let’s make it simple

Page 7: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan
Page 8: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Um…

Page 9: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Let’s make it a little useful

Page 10: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

How do I get my local ip address?

Page 11: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

> ifconfig

Page 12: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

What is scripting

192.168.1.149

Your local ip address

Page 13: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

What is scripting

Page 14: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

What is scripting

Basically…

Small programs

solving

Small problems

Page 15: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Plus…

• Saves time

• Easy to write

• Easy to manage

Page 16: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

And…

Show off

Page 17: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cases

• Cleaning old files

• Shutdown local server

• MySQL Database import from .sql

Page 18: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cleaning Old Files

Scenario

• All downloaded files are in one directory

• Directory becomes very large

Page 19: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cleaning Old Files

Page 20: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cleaning Old Files

Page 21: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cleaning Old Files

Use it with Cron

Page 22: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Shutdown Server

Scenario

• Local server crashes

• I cannot shut down my rails server with ctrl + c

Page 23: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Shutdown Server

> lsof –i:3000

> kill -9 PID

Page 24: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Shutdown Server

Page 25: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Importing MySQL database with .sql

Scenario

• When there is bug

• Importing production DB to local DB

Page 26: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Importing MySQL database with .sql

> ssh [email protected]

> mysqldump –u username –p db_name > db.sql

> exit

> scp [email protected]:db.sql db.sql

> mysql –u username –p db_name < db.sql

Page 27: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Importing MySQL database with .sql

Page 28: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Cases

• Scripts are task-specific

• Find patterns in your tasks

Page 29: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

Page 30: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

If you do not manage scripts…

• Scripts everywhere

• You have to remember file locations

Page 31: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

Purpose

• All scripts at a glance

• Write once, run everywhere

Page 32: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Rake

Page 33: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

• Rake

– Managing all rake tasks in ~/.rake folder

task_a.rake

task_b.rake

– Prefixing ‘rake’ command

– Description support

Page 34: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

Page 35: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

• Managing tasks like in Rails

– restart.rake

– import.rake

– local_ip.rake

– clean.rake

Thus, run `rake` command from anywhere(add –g option if necessary)

Page 36: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Executables

Page 37: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

• Make scripts executables

– Separate scripts by commands

• The bad part

– Too many commands

– Conflicting with existing commands

Page 38: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

> chmod 755 hello.rb

> mv hello.rb hello

> ./hello

Page 39: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Managing Scripts

• Change the following line in your ‘.bashrc’:

export PATH=“/user/bin:/usr/local/bin”

• To:

export PATH=“/user/bin:/usr/local/bin:/scripts”

• And you can do:

> hello

Page 40: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

That’s it!

Page 41: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Recap

• Scripts are small programs solving small problems

• Scripts are case-specific

• Automation saves energy & time

• Managing scripts with rake

Page 42: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Make your own scripts!

Page 43: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan

Thank you!Slides are available on my Twitter

@adler_hsieh