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.