Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan
-
Upload
adler-hsieh -
Category
Software
-
view
6.000 -
download
0
Transcript of Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan
![Page 1: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/1.jpg)
Automating Your Daily Tasks with Scripting
Adler Hsieh
RubyConf Taiwan
2015-9-11
![Page 2: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/2.jpg)
Agenda
• What is Scripting
• Why Scripting
• Several Cases
• Script Management
• Q & A
![Page 3: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/3.jpg)
Only Basic Concept
![Page 4: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/5.jpg)
What is Scripting
![Page 6: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/6.jpg)
Let’s make it simple
![Page 7: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/7.jpg)
![Page 8: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/8.jpg)
Um…
![Page 9: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/9.jpg)
Let’s make it a little useful
![Page 10: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/10.jpg)
How do I get my local ip address?
![Page 11: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/11.jpg)
> ifconfig
![Page 12: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/12.jpg)
What is scripting
192.168.1.149
Your local ip address
![Page 13: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/13.jpg)
What is scripting
![Page 14: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/14.jpg)
What is scripting
Basically…
Small programs
solving
Small problems
![Page 15: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/15.jpg)
Plus…
• Saves time
• Easy to write
• Easy to manage
![Page 16: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/16.jpg)
And…
Show off
![Page 17: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/17.jpg)
Cases
• Cleaning old files
• Shutdown local server
• MySQL Database import from .sql
![Page 18: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/19.jpg)
Cleaning Old Files
![Page 20: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/20.jpg)
Cleaning Old Files
![Page 21: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/21.jpg)
Cleaning Old Files
Use it with Cron
![Page 22: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/23.jpg)
Shutdown Server
> lsof –i:3000
> kill -9 PID
![Page 24: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/24.jpg)
Shutdown Server
![Page 25: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/27.jpg)
Importing MySQL database with .sql
![Page 28: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/28.jpg)
Cases
• Scripts are task-specific
• Find patterns in your tasks
![Page 29: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/29.jpg)
Managing Scripts
![Page 30: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/31.jpg)
Managing Scripts
Purpose
• All scripts at a glance
• Write once, run everywhere
![Page 32: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/32.jpg)
Rake
![Page 33: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/34.jpg)
Managing Scripts
![Page 35: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/36.jpg)
Executables
![Page 37: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/38.jpg)
Managing Scripts
> chmod 755 hello.rb
> mv hello.rb hello
> ./hello
![Page 39: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/40.jpg)
That’s it!
![Page 41: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/42.jpg)
Make your own scripts!
![Page 43: Automating Your Daily Tasks with Scripting - RubyConf 2015 Taiwan](https://reader033.fdocuments.in/reader033/viewer/2022050613/58ec82b81a28ab02368b4775/html5/thumbnails/43.jpg)
Thank you!Slides are available on my Twitter
@adler_hsieh