====== pastebinit ====== * Objet : pastebinit * Niveau requis : {{tag>débutant avisé}} * Commentaires : //Copier un fichier sur une page qui est ensuite transmissible par une URL automatique . // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-compléter}}{{tag>à-tester}} * Création par [[user>martinux_qc]] le 21/06/2013 * Testé par [82(_)|\|0] le 02/05/2021 succès * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1692 | ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Introduction ===== Ce logiciel, très prisé pour l'entraide, permet de partager via internet le résultat de toutes les commandes nécessaires afin d'obtenir une explication ou d'en offrir une... ===== Installation ===== Pour mettre en application ce tuto, la version 1.1-1 de pastebinit est nécessaire. L'installation se fait tout simplement en tapant : apt-get update && apt-get install pastebinit ===== Travaux pratiques ===== ==== TP-01 Lister le montage des disques - commande fdisk -l ==== Normalement dans une entraide, sur le forum ou sur le chan, vous êtes en user... pour ne pas passer d'un terminal //user// à un terminal //root// pour réaliser une commande root : Nous allons utiliser l'option -c de su (voir [[:doc:systeme:su#pour_me_connecter_en_tant_que_root_momentanement|SU Connection momentanée]]) su -c 'fdisk -l | pastebinit -' **Explication des options :** - utilisation du caractère pipe (|) afin de renvoyer la commande fdisk vers une seconde commande sans intermédiaire ni détail, (voir [[:doc:programmation:shell:les-metacaracteres|les METACARACTERES]]) - utilisation de l'option tiret (-) à la fin de la commande pastebinit pour l'initialiser (voir le man pastebinit) Nous obtenons, après avoir taper le mot de passe root, le résultat: su -c 'fdisk -l | pastebinit -' Mot de passe : Après la validation du mot de passe, nous obtenons : http:pastebin.com/f4bb5834c Cette url (ici pour l'exemple) : **http:pastebin.com/f4bb5834c** sera disponible selon l'option choisi : un jour - un mois - toujours ATTENTION ! Cette url peut être consultée par quiconque la compose dans son navigateur... Attention donc à ne pas transmettre des passwd en clair avec ! ATTENTION ! bis Toute personne visitant les log du site ou se trouvant à "l'écoute..." sur le réseau..." peut également les intercepter ! L'url transcrite dans un navigateur, le pastebin obtenu est en 2 parties, - celle du haut pour le texte, - celle du bas pour d'éventuelles modifications/corrections... Éventuellement, après quelques modifications réalisées, un clic sur **send** vous donnera une nouvelle adresse //url// à communiquer... le paste modifié ! ==== TP-02 (Donner la proposition d'une mise à jour sur un pinning...) ==== Débutant, voir : * [[:doc:systeme:apt:pinning | Le PINNING - En détail]] * [[:doc:systeme:apt | Les Outils APT - En détail]] Le fichier pinning modifié et après avoir mis à jour le fichier /etc/apt/sources.list avec la commande aptitude update), nous envoyons : su -c 'aptitude -s safe-upgrade | pastebinit -' (option -s pour simulation...) Et nous trouverons à la sortie l'url du paste résultant que nous pourrons communiquer par mail, forum ou autre salon irc. ==== TP-03 Option -i (Donner la composition d'un fichier) ==== Pour donner en paste le fichier //fstab// par exemple : pastebinit -i /etc/fstab Vous donnera l'''url'' du paste de ce fichier. Toujours du compère ''captnfab'' sur le chan DF. //Que toutes les descendances linuxiennes lui offrent, le temps venu, une retraite calme et enjouée, comme son gentil caractère...// ===== Quelques scripts ===== Nos émminents membres nous proposent des scripts pour un lancement de pastebin. ==== script façon firebird : ==== Source sur le forum là : * http://debian-facile.org/forum/viewtopic.php?pid=34660#p34660 Il existe des dock ou autre launchers qui intègrent des moyens via du drag'n'drop mais il faut se taper le dock en question… Et puis ça fait utiliser la souris… \\ J'ai donc tapoté un script pour ne plus m'embêter. ;-) Il faut que les paquets libnotify-bin et pastebinit soient installés. #!/bin/bash URL=$(clipit -p | pastebinit -b http://pastebin.com) echo $URL | clipit notify-send $URL echo $URL Ensuite j'utilise clipit comme presse-papier mais vous pouvez en utilisez un autre du moment qu'il supporte les actions. Donc ensuite dans clipit je créer une action Pastit : /pathtomonscript/pastit.sh Ne pas oublier de cocher la synchronisation des presse-papier dans clipit ou assimilé. L'utilisation full clavier donne ainsi : ^ //COMMANDES// ^ //ACTION// ^ | C-Inser | copier le texte | | C-A-a | raccourcis de clipit pour le menu d'action | | Pastit | On est averti par une notification quand le paste est bien terminé | | Maj-Inser |collage du lien pastebin (oui il est déjà prêt à coller) | On pourrait probablement faire un raccourci encore plus simple pour lancer l'action… ==== script façon cthuluh : ==== Source sur le forum là : * http://debian-facile.org/forum/viewtopic.php?pid=34661#p34661 #!/bin/sh usage () { printf '%s\n' "Usage: $0 [ -h | -n filename ]" >&2 exit "${1:-0}" } pastebin_dir=$HOME/public_html/paste file= umask 0022 while getopts ":n:h" opt; do case $opt in 'n') file=$OPTARG ;; 'h') usage ;; '?') usage 1 ;; ':') printf '%s\n' "Argument for option '$OPTARG' missing." >&2 usage 2 ;; *) usage 1 ;; esac done shift "$(($OPTIND - 1))" if [ "$#" -ne 0 ]; then usage 1 fi if [ ! -d "$pastebin_dir" ]; then mkdir -p "$pastebin_dir" fi if [ ! -f "$pastebin_dir/index.html" ]; then cat <<'EOF' > "$pastebin_dir/index.html" Verbotten

GTFO

EOF fi if [ -n "$file" ]; then file=$pastebin_dir/$file touch "$file" else file=$(mktemp "$pastebin_dir/XXXXXXXX.txt") fi chmod a+r "$file" cat > "$file" file=${file##*/} printf '%s\n' "http://$(hostname -d)/~$USER/paste/$file"
==== Script façon Thuban ==== Source sur le forum, là : * http://debian-facile.org/forum/viewtopic.php?pid=34662#p34662 ==== Script façon SwitchT ==== Envoyer sa configuration matérielle sur pastehtml.com: Entrer cette fonction dans le fichier .bashrc, ou directement dans une console. lshw(){ curl -s -S --data-urlencode "txt=$(su -c 'lshw -html -sanitize')" "http://pastehtml.com/upload/create?input_type=html&result=address";echo;} Puis utiliser: lshw voir : [[:doc:systeme:lshw]]; j'ai ajouté l'option -sanitize qui masque les informations sensibles (ip, numéro de série...); puis utilisé su au lieu de sudo. Nécessite les paquets curl et lshw. ===== Remerciements ===== //Merci à //**firebird**// d'avoir initié ces scripts ainsi qu'à //**cthuluh**// et //**Thuban**// de faire profiter des leurs les amis !// :-D