Asciinema Nedir? Nasıl Kullanılır?

Herhangi bir kurulum ya da konfigürasyon sırasında; gerek müşterilerimize bilgi vermek, gerek kendimiz için bir doküman oluşturmak, gerekse karşılaştığımız hata ve uyarı çıktılarını kaydetmek ve bir bilene danışmak için, süreç boyunca tüm terminal çıktılarımızı kaydetmek isteyebiliriz.

Bu yazıda, bize bu konuda yardımcı olabilecek bir terminal oturumu kaydedici yazılımı olan asciinema‘dan bahsedeceğiz.

Asciinema, komut satırı arayüzündeki içeriği kaydetmenizi ve sonrasında bu kaydı ister terminalden, isterseniz web tarayıcısı üzerinden tekrar izlemenize olanak sağlayan bir yazılımdır.

Debian tabanlı sistemlerde

sudo apt-get install asciinema

komutunu kullanarak kolaylıkla kurabilirsiniz.

Asciinema Nasıl Kullanılır?

Herhangi bir opsiyon veya parametre kullanmadan komutu çalıştırırsanız, sizi bir yardım çıktısı karşılar:

ali@zion:~$ asciinema
usage: asciinema [-h] [--version] {rec,play,cat,upload,auth} ...

Record and share your terminal sessions, the right way.

positional arguments:
  {rec,play,cat,upload,auth}
    rec                 Record terminal session
    play                Replay terminal session
    cat                 Print full output of terminal session
    upload              Upload locally saved terminal session to asciinema.org
    auth                Manage recordings on asciinema.org account

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit

example usage:
  Record terminal and upload it to asciinema.org:
    asciinema rec
  Record terminal to local file:
    asciinema rec demo.cast
  Record terminal and upload it to asciinema.org, specifying title:
    asciinema rec -t "My git tutorial"
  Record terminal to local file, limiting idle time to max 2.5 sec:
    asciinema rec -i 2.5 demo.cast
  Replay terminal recording from local file:
    asciinema play demo.cast
  Replay terminal recording hosted on asciinema.org:
    asciinema play https://asciinema.org/a/difqlgx86ym6emrmd8u62yqu8
  Print full output of recorded session:
    asciinema cat demo.cast

For help on a specific command run:
  asciinema <command> -h

Asciinema’da Oturumu Kaydetme

asciinema rec

komutu ile, kayda başlayabilirsiniz. Bu şekilde başlatılan kayıt, tamamlandığında asciinema.org’a yüklenir ya da isteğinize göre lokal diskinizde bir dosyaya kaydedilir. Aşağıdaki örneği inceleyelim:

ali@zion:~$ asciinema rec
asciinema: recording asciicast to /tmp/tmpw2cmy3oy-ascii.cast
asciinema: press <ctrl-d> or type "exit" when you're done
ali@zion:~$ echo test
test
ali@zion:~$ exit
exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally
asciinema: asciicast saved to /tmp/tmpw2cmy3oy-ascii.cast

İlk komutu verdikten sonra, “/tmp” altında bir dosyaya kayıt başladı. Kaydı tamamlamak için shell’den çıkmamız (CTRL+D ya da exit) belirtilmiş. Kayıt başladıktan sonra “echo test” komutu çalıştırılmış ve ekrana “test” çıktısı verilmiş. Sonrasında “exit” komutu ile kayıt sonlandırılmış. Kayıt sonlandığında, “enter”a basarak uzak sunucuya upload edebileceğimiz ya da “CTRL+C” ile diske kaydedebileceğimiz belirtilmiş. “CTRL+C”‘ye basılmış olacak ki, dosya diske kaydedilmiş.

Peki kendi istediğimiz dosyaya nasıl kaydedeceğiz? Oldukça kolay:

asciinema rec dosya_adi

Çıktıyı inceleyelim:

ali@zion:~$ asciinema rec test_kaydi
asciinema: recording asciicast to test_kaydi
asciinema: press <ctrl-d> or type "exit" when you're done
ali@zion:~$ echo dosyaya kayıt
dosyaya kayıt
ali@zion:~$ exit
exit
asciinema: recording finished
asciinema: asciicast saved to test_kaydi

Gördüğünüz gibi oturumun kaydı, “test_kaydi” isimli dosyaya yazıldı.

Zaten var olan bir oturum kaydının üzerine yazmak isteyebilirsiniz:

ali@zion:~$ asciinema rec test_kaydi
asciinema: test_kaydi already exists, aborting
asciinema: use --append option if you want to append to existing recording

Gördüğünüz gibi, aynı dosya zaten varsa, asciinema kayıt almanızı engelliyor. “–append” opsiyonu ile, eski kaydın üzerine eklemeler yapabilirsiniz:

asciinema rec --append test_kaydi

Çıktıyı inceleyelim:

ali@zion:~$ asciinema rec --append test_kaydi
asciinema: appending to asciicast at test_kaydi
asciinema: press <ctrl-d> or type "exit" when you're done
ali@zion:~$ echo bu çıktı sonradan eklendi
bu çıktı sonradan eklendi
ali@zion:~$ exit
exit
asciinema: recording finished
asciinema: asciicast saved to test_kaydi

İkinci satırda, “appending” ifadesi yer alıyor. Var olan bir kaydın üzerine eklemeler yapıyoruz.

Asciinema’da Oturumu İzleme

asciinema play dosya_adi

komutunu kullanarak, daha önceden kaydedilmiş bir oturumu izleyebilirsiniz:

ali@zion:~$ asciinema play test_kaydi 
ali@zion:~$ echo dosyaya kayıt
dosyaya kayıt
ali@zion:~$ exit
exit
ali@zion:~$ echo bu çıktı sonradan eklendi
bu çıktı sonradan eklendi
ali@zion:~$ exit
exit

Bu sayede, yapılan tüm adımları tek tek izleyebilirsiniz.

Asciinema’da Bekleme Süresini Azaltma

Uzun soluklu bir işiniz olduğunu düşünelim. Komut yazıyorsunuz, çalıştırıyorsunuz. Sonrasında kendinize bir kahve almaya gidiyorsunuz. Fakat kayıt devam ediyor. İzleyen kişi de, sizi beklemek zorunda kalacak. Ya da bir dokümanı okuyorsunuz. Zaman alıyor. Hatta öğlen yemeğine gidiyorsunuz ve geri geliyorsunuz. Bu noktada, boşta kalınan zamanları birebir aynı şekilde kaydetmek istemeyebilirsiniz.

asciinema rec -i 3 dosya_adi

komutunda olduğu gibi, “-i” opsiyonu ile maksimum idle zamanı belirleyebilirsiniz. Bu örnek için 3 saniye. Bu durumda, 3 saniyeden fazla herhangi bir işlem yapılmazsa, kayıt duraklatılıyor ve sonrasında tekrar devam ediliyor. Bu sayede, siz kahvenizi almaya gidip gelseniz bile, kaydı sonradan izleyecek kişi bunu beklemek zorunda kalmayacak.

asciinema Kullanım Örneği
asciinema Kullanım Örneği