Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
p2p:rtorrent:pyroscope-rtorrent-ps:script-rtmanager [le 21/01/2017 à 17h12] 111110101011 |
p2p:rtorrent:pyroscope-rtorrent-ps:script-rtmanager [le 27/01/2017 à 23h11] (Version actuelle) 111110101011 [Screenshot] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== rtmanager.sh ====== | ====== rtmanager.sh ====== | ||
| - | Un script fait maison pour accueillir les utilisateurs d'une session SSH sur la seedbox, c'est pas du très propre, encore en développement, | + | Un script fait maison pour accueillir les utilisateurs d'une session SSH sur la seedbox. |
| - | Date: 21 janvier 2017 | + | Le script est encore en développement, |
| - | <code bash> | + | Le script ne se suffit pas à lui-même, il se complète avec les formats et les templates de sortie de rtcontrol. Vous devrez aussi ajuster les permissions des répertoires. |
| + | |||
| + | ===== Screenshot ===== | ||
| + | |||
| + | Bon ok, c'est du terminal hein... mais y'a un peu de couleur ;) | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | ===== Formats ===== | ||
| + | |||
| + | <code ini config.ini> | ||
| + | # Affiche nom, pourcentage de completion, taille, débit descendant et montant. | ||
| + | f1 = {{default ESC= ' | ||
| + | |||
| + | # Affiche uniquement le ratio et le nom. | ||
| + | f2 = {{default ESC= ' | ||
| + | </ | ||
| + | |||
| + | * ESC est un échappement qui précède les codes couleurs. | ||
| + | * [99m sont les codes couleurs de bash | ||
| + | * le format peut se définir de la même façon qu'un template, on peut utiliser des structures conditionelles, | ||
| + | |||
| + | |||
| + | ===== Script ===== | ||
| + | |||
| + | Date: 24 janvier 2017 | ||
| + | |||
| + | <code bash rtmanager.sh> | ||
| #!/bin/bash | #!/bin/bash | ||
| Ligne 14: | Ligne 43: | ||
| RTBIN="/ | RTBIN="/ | ||
| RTCFGOPTS=' | RTCFGOPTS=' | ||
| - | |||
| RTCMD=" | RTCMD=" | ||
| + | RTPATHCOMPLETE="/ | ||
| + | RTPATHWORK="/ | ||
| + | RTPATHWATCH="/ | ||
| + | RTPATHWATCHHANDLED="/ | ||
| function rt_is_admin() { | function rt_is_admin() { | ||
| Ligne 34: | Ligne 66: | ||
| else | else | ||
| RTUSER=" | RTUSER=" | ||
| + | # à vérif: si je mets le / final, il ne match pas | ||
| + | RTCMD=" | ||
| fi | fi | ||
| - | RTPATHCOMPLETE="/mnt/local/1/ | + | |
| - | RTPATHWORK="/mnt/local/1/ | + | |
| + | ### COULEURS | ||
| + | |||
| + | function test_colors() { | ||
| + | echo -en "$C0$1$C0\t" | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | echo -en " | ||
| + | } | ||
| + | |||
| + | C0=" | ||
| + | C1=" | ||
| + | C2=" | ||
| + | C3=" | ||
| + | C4=" | ||
| + | C5=" | ||
| + | C6=" | ||
| + | C7=" | ||
| + | C8=" | ||
| + | C9=" | ||
| + | CA=" | ||
| + | CB=" | ||
| + | CC=" | ||
| + | CD=" | ||
| + | CE=" | ||
| + | CF=" | ||
| + | CG="\033[1;37m" | ||
| ### RTCONTROL | ### RTCONTROL | ||
| + | |||
| + | RTF1=" | ||
| function rt_print_user_torrents() { | function rt_print_user_torrents() { | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -qo f1 "$RTF1" |
| + | } | ||
| + | |||
| + | function rt_print_users_torrents() { | ||
| + | $RTCMD -qo f1 "*" | ||
| } | } | ||
| function rt_print_user_incomplete() { | function rt_print_user_incomplete() { | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -qo f1 "$RTF1" " |
| } | } | ||
| function rt_print_user_complete() { | function rt_print_user_complete() { | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -qo f1 "$RTF1" " |
| + | } | ||
| + | |||
| + | function rt_print_user_ratio() { | ||
| + | $RTCMD -qo f2 "$RTF1" | ||
| } | } | ||
| function rt_print_user_trackers() { | function rt_print_user_trackers() { | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -q " |
| + | } | ||
| + | |||
| + | function rt_print_recent_complete() { | ||
| + | |||
| + | echo -e " | ||
| + | |||
| + | $RTCMD -qo f1 " | ||
| + | |||
| + | echo "" | ||
| + | } | ||
| + | |||
| + | function rt_print_download_details() { | ||
| + | $RTCMD -q "" | ||
| } | } | ||
| Ligne 77: | Ligne 173: | ||
| echo " | echo " | ||
| - | echo -n " | + | echo -ne $CD" |
| read critere | read critere | ||
| Ligne 85: | Ligne 181: | ||
| resultats=$(mktemp) | resultats=$(mktemp) | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -qo f1 "$RTF1" " |
| - | let nbresu=$(cat $resultats | wc -l)/2 | + | let nbresu=$(cat $resultats | wc -l) |
| fi | fi | ||
| Ligne 116: | Ligne 212: | ||
| echo " | echo " | ||
| if [ " | if [ " | ||
| - | echo -n '!' | + | echo -ne "$CA!$C0" |
| fi | fi | ||
| - | echo -n " | + | echo -ne $CD" |
| read confirmation | read confirmation | ||
| case $confirmation in | case $confirmation in | ||
| o|O|y|Y) | o|O|y|Y) | ||
| - | $RTCMD -q "realpath=*$RTPATHCOMPLETE/ | + | $RTCMD -q "custom_targetdir=*$RTPATHCOMPLETE/$RTUSER/*" " |
| # | # | ||
| ;; | ;; | ||
| Ligne 243: | Ligne 339: | ||
| echo "$cpt liens cassé(s) supprimé(s)." | echo "$cpt liens cassé(s) supprimé(s)." | ||
| + | } | ||
| + | |||
| + | |||
| + | ### BASHERIES | ||
| + | |||
| + | function list_users_complete() { | ||
| + | |||
| + | find " | ||
| + | # -printf "%H : %f\n" | ||
| + | |||
| + | } | ||
| + | |||
| + | function list_user_watch() { | ||
| + | |||
| + | echo -e $C4" | ||
| + | |||
| + | find " | ||
| + | |||
| + | } | ||
| + | |||
| + | function list_user_watch_handled() { | ||
| + | |||
| + | echo -e $C4" | ||
| + | |||
| + | find " | ||
| + | |||
| } | } | ||
| Ligne 253: | Ligne 375: | ||
| clear | clear | ||
| - | cat << EOF | + | echo -e "Salut $CB$RTUSER$C0,\n" |
| - | Salut $RTUSER, | + | echo -e "Voici quelques options pour gérer tes téléchargements :\n" |
| - | + | ||
| - | Voici quelques options pour gérer tes téléchargements : | + | |
| - | + | ||
| - | EOF | + | |
| } | } | ||
| Ligne 264: | Ligne 382: | ||
| function menu_actions() { | function menu_actions() { | ||
| + | echo -e " | ||
| cat << EOF | cat << EOF | ||
| - | [ACTIONS] | ||
| - | 1 : Lister | + | [$RTUSER] L : Lister |
| - | 2 : Lister | + | [$RTUSER] I : Lister |
| - | 3 : Lister | + | |
| - | 4 : Lister | + | |
| - | 5 : Statistiques des trackers | + | |
| - | + | | |
| - | 6 : Supprimer des téléchargements sans supprimer les fichiers terminés | + | |
| - | 7 : /!\ Supprimer des téléchargements, | + | [all] O : Lister les fichiers complets de tous les utilisateurs |
| + | [$RTUSER] W : Lister les fichiers .torrent dans watch | ||
| + | [$RTUSER] R : Afficher le ratio des téléchargements | ||
| EOF | EOF | ||
| Ligne 280: | Ligne 400: | ||
| rt_is_admin && menu_actions_admin | rt_is_admin && menu_actions_admin | ||
| + | echo -e " | ||
| cat << EOF | cat << EOF | ||
| - | [MENU] | ||
| - | q ou Q : Pour quitter ce menu (accès au shell) | + | |
| - | m ou M : Pour réafficher ce menu | + | M : Pour réafficher ce menu |
| - | z ou Z : Pour afficher un dinosaure | + | Z : Pour afficher un dinosaure |
| EOF | EOF | ||
| Ligne 293: | Ligne 413: | ||
| function menu_actions_admin() { | function menu_actions_admin() { | ||
| + | echo -e " | ||
| cat << EOF | cat << EOF | ||
| - | [ADMIN] | ||
| - | 8 : Lister les fichiers orphelins (non chargés dans rtorrent) | + | or : Lister les fichiers orphelins (non chargés dans rtorrent) |
| - | 9 : Déplacer les fichiers qui pour une raison X sont restés dans /work/ | + | |
| - | 10 : Retirer les liens symboliques cassés de /work/ | + | |
| EOF | EOF | ||
| Ligne 307: | Ligne 427: | ||
| num=$(( ( RANDOM % 8 ) + 1 )) | num=$(( ( RANDOM % 8 ) + 1 )) | ||
| + | # cola=$(( ( RANDOM % 2 ) )) | ||
| + | colb=$(( ( RANDOM % 8 ) )) | ||
| + | cola=1 | ||
| + | |||
| + | echo -ne " | ||
| cat $RTBIN/ | cat $RTBIN/ | ||
| + | echo -ne " | ||
| + | |||
| } | } | ||
| Ligne 319: | Ligne 446: | ||
| function menu_ask() { | function menu_ask() { | ||
| - | echo -n "> " | + | echo -ne "$CD>$C0 " |
| read choice | read choice | ||
| case $choice in | case $choice in | ||
| - | 1) | + | l|L) |
| rt_print_user_torrents | rt_print_user_torrents | ||
| ;; | ;; | ||
| - | 2) | + | i|I) |
| rt_print_user_incomplete | rt_print_user_incomplete | ||
| ;; | ;; | ||
| - | 3) | + | c|C) |
| rt_print_user_complete | rt_print_user_complete | ||
| ;; | ;; | ||
| - | 4) | + | s|S) |
| rt_user_search | rt_user_search | ||
| ;; | ;; | ||
| - | 5) | + | a|A) |
| - | rt_print_user_trackers | + | rt_print_users_torrents |
| ;; | ;; | ||
| - | 6) | + | d|D) |
| rt_del_user_torrents purge | rt_del_user_torrents purge | ||
| ;; | ;; | ||
| - | 7) | + | dd|DD) |
| rt_del_user_torrents cull | rt_del_user_torrents cull | ||
| ;; | ;; | ||
| - | 8) | + | o|O) |
| + | list_users_complete | ||
| + | ;; | ||
| + | w|W) | ||
| + | list_user_watch | ||
| + | list_user_watch_handled | ||
| + | ;; | ||
| + | r|R) | ||
| + | rt_print_user_ratio | ||
| + | ;; | ||
| + | or) | ||
| rt_is_admin && rt_print_orphans || menu_unknown_option | rt_is_admin && rt_print_orphans || menu_unknown_option | ||
| ;; | ;; | ||
| - | 9) | + | mv) |
| rt_is_admin && rt_move_work_torrents || menu_unknown_option | rt_is_admin && rt_move_work_torrents || menu_unknown_option | ||
| ;; | ;; | ||
| - | 10) | + | sy) |
| rt_is_admin && rt_del_broken_symlinks || menu_unknown_option | rt_is_admin && rt_del_broken_symlinks || menu_unknown_option | ||
| ;; | ;; | ||
| q|Q) | q|Q) | ||
| - | echo " | + | echo |
| exit 0 | exit 0 | ||
| ;; | ;; | ||
| Ligne 377: | Ligne 514: | ||
| menu_welcome | menu_welcome | ||
| menu_actions | menu_actions | ||
| + | |||
| + | rt_print_recent_complete | ||
| + | |||
| + | # | ||
| while : | while : | ||