http - menú - ¿Cómo usar pastebin desde shell script?
menú en shell script de linux (5)
Cuando pastebin.com cerró su API pública, estaba buscando alternativas.
Sprunge ( http://github.com/rupa/sprunge ) es genial. Uso:
<command> | curl -F ''sprunge=<-'' http://sprunge.us
O, como yo lo uso:
alias paste="curl -F ''sprunge=<-'' http://sprunge.us"
<command> | paste
¿Es posible usar pastebin (puede ser a través de su funcionalidad "API" ) dentro de los scripts de shell bash? ¿Cómo envío http-post? ¿Cómo recupero la URL?
La API para publicar en pastebin ha cambiado, desde que fue publicada por codaddict.
Los detalles se pueden encontrar en este enlace: pastebin.com/api
Ejemplo: curl -d ''api_paste_code=printf("Hello../n I am Codaddict");'' / -d ''api_dev_key=<get_your_own>'' / -d ''api_option=paste'' ''http://pastebin.com/api/api_post.php''
curl -d ''api_paste_code=printf("Hello../n I am Codaddict");'' / -d ''api_dev_key=<get_your_own>'' / -d ''api_option=paste'' ''http://pastebin.com/api/api_post.php''
Hay tres campos esenciales a partir de ahora:
api_dev_key
-> Necesitas crear un inicio de sesión en pastebin.com para obtener eso
api_option
-> Formato en el cual publicar
api_paste_code
-> Texto que quieres publicar
Otras dos respuestas (de circa 2014) apuntan a http://sprunge.us , que está diseñado para ser utilizado así ...
curl --form ''[email protected]'' sprunge.us
Sin embargo, a partir de 2018, sprunge.us tiene una tendencia a sobrecargarse y devolver 500 errores internos del servidor a cada solicitud. Para archivos de al menos 300 KB, pero no tan altos como 2.8 MB, he tenido buena suerte con el servicio muy similar en ix.io :
curl --form ''f:[email protected]'' ix.io
Para archivos de al menos 2.8 MB (y tal vez más alto, no lo sé), he encontrado el https://transfer.sh más altamente pulido. Recomienda una línea de comando ligeramente diferente y más simple, y requiere https
(no funcionará sin ella):
curl --upload-file yourfile.txt https://transfer.sh
Pon lo siguiente en tu .bashrc
:
sprunge() {
if [[ $1 ]]; then
curl -F ''sprunge=<-'' "http://sprunge.us" <"$1"
else
curl -F ''sprunge=<-'' "http://sprunge.us"
fi
}
... y luego puedes correr:
sprunge filename # post file to sprunge
...o...
some_command | sprunge # pipe output to sprunge
La documentation dice que debe enviar una solicitud POST
a
http://pastebin.com/api_public.php
y el único parámetro obligatorio es paste_code
, de tipo string es el pegado que desea hacer.
En caso de éxito se devolverá una nueva URL de pastebin
.
Puede hacer esto fácilmente desde su shell bash usando el comando curl
.
curl
utiliza la opción -d
para enviar los datos POST
a la URL especificada.
Manifestación:
Esta demostración creará un nuevo pegado con el código:
printf("Hello..I am Codaddict");
Desde tu shell:
$ curl -d ''paste_code=printf("Hello..I am Codaddict");'' ''http://pastebin.com/api_public.php''
http://pastebin.com/598VLDZp
$
Ahora, si ves la URL http://pastebin.com/598VLDZp , verás mi pegado :)
Alternativamente , puede hacerlo usando el comando wget
que usa la opción --post-data
para enviar valores POST
.
He intentado este comando funciona bien:
wget --post-data ''paste_code=printf("Hello..I am Codaddict");'' ''http://pastebin.com/api_public.php''