Script Execution
From DD-WRT Wiki
English • Deutsch • Español • Français • Italiano • 日本語 • Polski • Português • Русский • Svenska • 中文(中国大陆) • 中文(台灣) • |
You are here: DD-WRT wiki mainpage / Scripting / Script Execution
Contents |
[edit] Introduction
Sometimes you want scripts to be executed automatically when something happens, this article explains how to make sure scripts get executed at a certain point.
[edit] General Information
There are four different directories DD-WRT searches for scripts, these are
- /etc/config/
- /jffs/etc/config/
- /mmc/etc/config/
- /tmp/etc/config/
[edit] Script Types
You need to add an extension to the script if placed in one of the previous folders. Every extension has its own meaning.
Extension | Explanation |
.startup | will be executed on system startup, normally boot-time and before the firewall is configured. |
.prewall | will be executed whenever the WAN interface goes up and before the firewall. |
.wanup | will be executed whenever the WAN interface goes up and after the firewall. |
.if | will be executed whenever any interface goes up and after the firewall. (no longer in source code, must be deleted) |
.ipup | is run when PPP connection is reestablished after a disconnect and after the firewall. |
.ipdown | is run when a PPP connection has been shut down. (no longer in source code, must be deleted?) |
.sesbutton | is executed when the SES/AOSS/EZ-SETUP button is pressed |
Remember to change permissions on any script files using chmod (chmod +x script_name) to permit execution. Scripts with .wanup may be run several times when the router boots. ( see http://www.dd-wrt.com/phpBB2/viewtopic.php?p=433984 ). People using WinSCP to transfer files to their router can right click on the filename after uploading and select "Properties" to change permissions.
[edit] Execute Scripts with a Different Extension or in a Different Folder
If you want to execute scripts with a different extension or those that are located in an other folder you can create this script
for I in `/bin/ls /jffs/etc/config/*.myextension`;do sh $I & done
Of course you need to change the path (/jffs/etc/config) and the extension itself to match your desire.
[edit] How It Works
The command sh /jffs/etc/config/*.myextension will execute every script ending in .myextension found in the /jffs/etc/config directory. By setting this as the rc_startup value, your *.myextension scripts will load every time the router boots.