Jump to content

Install Bash script interpreter on Asustor for use with ScripterX


CJTripper

Recommended Posts

CJTripper

I was recently playing around with the ScripterX plugin and realized BASH wasn't installed on my Asustor 5304, it uses SH as it's default shell interpreter. Here are the steps I followed to install BASH and get it working with ScripterX /bin/bash selected as the in ScripterX interpreter:

1. Install Entware 1.0 from Asustor App Central

2. From SSH console session to the NAS:
opkg update && opkg upgrade
opkg install bash

3.cd /opt/bin
sudo cp ./bash /bin/

Note that after a reboot of the NAS, you will have to repeat step 3 to recopy the bash file to the /bin folder

------------------

Update: Replace step 3 for a persistent solution (recreates symlink on startup): sudo echo /bin/ln -s /opt/bin/bash /bin/bash > /usr/local/etc/init.d/S76bash.sh

Tested on an Asustor AS5304T, ADM ver 3.5.5.RFC3

Edited by CJTripper
updated with persistent solution
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Brilliant!  I've been missing bash on my ASUSTOR... not anymore!

Regarding step 3, I think if you copy it to "/usr/local/bin" instead of /bin—or create a symlink there—it should maintain its persistence after reboot.

That's my theory, anyway.  I'll give it a try and report back during my next reboot.

Link to comment
Share on other sites

CJTripper

Well, copying bash to "/usr/local/bin" kept the bash file there after reboot. Works great from SSH command line from any directory as "/usr/local/bin" is in the default environmental variable path.

However it doesn't work for ScripterX - it seems to be hardcoded to the "/bin/bash" path and doesn't work with just having bash available via the environment path.

So I cheated a bit and put a script in /usr/local/etc/init.d/ to create a symlink in /bin for bash. That init.d folder is where the Asustor App Central programs/services start from. Here is the syntax I used to create the simple script file from a SSH console: sudo echo /bin/ln -s /opt/bin/bash /bin/bash > /usr/local/etc/init.d/S76bash.sh

It isn't pretty, but I have confirmed it is persistent and Scripter-X can now find it (via symlink) and is happy again. If you need it to load quicker on startup, decrease S76 to a lower number to increase priority. The S has to stay as the Asustor boot script calls all S* files in that init.d directory.

Let me know if you come up with something better or more appropriate, I'm not a Linux guy and am just fumbling my way through. Thanks for the symlink suggestion, and motivating me to find a persistent solution.

Link to comment
Share on other sites

On 4/13/2021 at 1:45 AM, CJTripper said:

So I cheated a bit and put a script in /usr/local/etc/init.d/ to create a symlink in /bin for bash. That init.d folder is where the Asustor App Central programs/services start from. Here is the syntax I used to create the simple script file from a SSH console: sudo echo /bin/ln -s /opt/bin/bash /bin/bash > /usr/local/etc/init.d/S76bash.sh

Yeah, that was going to be my next suggestion, so you were a step ahead of me!  Glad you got it to work.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...