blog.notmyidea.org/content/code/2010-10-21-bebox-reboot.md
Alexis Métaireau 9df3b183b6 Enhanced UI & UX; Added New ISBN Plugin.
- Added the ability to display book cover for the category "Lectures" if ISBN cover is available.
- Moved author's name into a small tag for better hierarchy and readability.
- Implemented a feature to indicate link sizes depending on the number of articles associated with a given tag.
- Implemented a mini footer element displaying an RSS feed icon.
- Improved category display using description dictionary.
- Added a new plugin "isbn_downloader" to fetch ISBN information when needed.
- Included the count of articles for each category.
- Implemented changes for better layout and readability of tags and categories.
- Adjusted the layout of the webpage, improving the overall look of the page.
- Included "requests" in the requirements.txt for supplanting dependencies required by the new plugin and/or features.
2023-09-29 18:30:09 +02:00

60 lines
1.9 KiB
Markdown

# How to reboot your bebox using the CLI
I've an internet connection which, for some obscure reasons, tend to be
very slow from time to time. After rebooting the box (yes, that's a hard
solution), all the things seems to go fine again.
## EDIT : Using grep
After a bit of reflexion, that's also really easy to do using directly
the command line tools curl, grep and tail (but really harder to
read).
```bash
curl -X POST -u joel:joel http://bebox.config/cgi/b/info/restart/\?be\=0\&l0\=1\&l1\=0\&tid\=RESTART -d "0=17&2=`curl -u joel:joel http://bebox.config/cgi/b/info/restart/\?be\=0\&l0\=1\&l1\=0\&tid\=RESTART | grep -o "name='2' value='[0-9]\+" | grep -o "[0-9]\+" | tail -n 1`&1"
```
## The Python version
Well, that's not the optimal solution, that's a bit "gruik", but it
works.
```python
import urllib2
import urlparse
import re
import argparse
REBOOT_URL = '/b/info/restart/?be=0&l0=1&l1=0&tid=RESTART'
BOX_URL = 'http://bebox.config/cgi'
def open_url(url, username, password):
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
return urllib2.urlopen(url).read()
def reboot(url, username, password):
data = open_url(url, username, password)
token = re.findall("name\=\\'2\\' value=\\'([0-9]+)\\'", data)[1]
urllib2.urlopen(urllib2.Request(url=url, data='0=17&2=%s&1' % token))
if __file__ == '__main__':
parser = argparse.ArgumentParser(description="""Reboot your bebox !""")
parser.add_argument(dest='user', help='username')
parser.add_argument(dest='password', help='password')
parser.add_argument(boxurl='boxurl', default=BOX_URL, help='Base box url. Default is %s' % BOX_URL)
args = parser.parse_args()
url = urlparse.urljoin(args.boxurl, REBOOT_URL)
reboot(url, args.username, args.password)
```