Slide 0
Automating Your Daily Tasks with Scripting
Adler Hsieh
RubyConf Taiwan
2015-9-11
Slide 1
Agenda
What is Scripting
Why Scripting
Several Cases
Script Management
Q & A
Slide 2
Only Basic Concept
Slide 3
Who am I
Adler Hsieh
Software Engineer at OneAD
Ruby, JavaScript, PHP
Github: adlerhsieh
Twitter: @adler_hsieh
Blog: http://motion-express.com
Slide 4
What is Scripting
Slide 5
Let’s make it simple
Slide 6
Slide 7
Um…
Slide 8
Let’s make it a little useful
Slide 9
How do I get my local ip address?
Slide 10
> ifconfig
Slide 11
What is scripting
192.168.1.149
Your local ip address
Slide 12
What is scripting
Slide 13
What is scripting
Basically…
Small programs
solving
Small problems
Slide 14
Plus…
Saves time
Easy to write
Easy to manage
Slide 15
And…
Show off
Slide 16
Cases
Cleaning old files
Shutdown local server
MySQL Database import from .sql
Slide 17
Cleaning Old Files
Scenario
All downloaded files are in one directory
Directory becomes very large
Slide 18
Cleaning Old Files
Slide 19
Cleaning Old Files
Slide 20
Cleaning Old Files
Use it with Cron
Slide 21
Shutdown Server
Scenario
Local server crashes
I cannot shut down my rails server with ctrl + c
Slide 22
Shutdown Server
> lsof –i:3000
> kill -9 PID
Slide 23
Shutdown Server
Slide 24
Importing MySQL database with .sql
Scenario
When there is bug
Importing production DB to local DB
Slide 25
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
Slide 26
Importing MySQL database with .sql
Slide 27
Cases
Scripts are task-specific
Find patterns in your tasks
Slide 28
Managing Scripts
Slide 29
Managing Scripts
If you do not manage scripts…
Scripts everywhere
You have to remember file locations
Slide 30
Managing Scripts
Purpose
All scripts at a glance
Write once, run everywhere
Slide 31
Rake
Slide 32
Managing Scripts
Rake
Managing all rake tasks in ~/.rake folder
task_a.rake
task_b.rake
Prefixing ‘rake’ command
Description support
Slide 33
Managing Scripts
Slide 34
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)
Slide 35
Executables
Slide 36
Managing Scripts
Make scripts executables
Separate scripts by commands
The bad part
Too many commands
Conflicting with existing commands
Slide 37
Managing Scripts
> chmod 755 hello.rb
> mv hello.rb hello
> ./hello
Slide 38
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
Slide 39
That’s it!
Slide 40
Recap
Scripts are small programs solving small problems
Scripts are case-specific
Automation saves energy & time
Managing scripts with rake
Slide 41
Make your own scripts!
Slide 42
Thank you!
Slides are available on my Twitter
@adler_hsieh