3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FreeBSDAdvent Calendar 2023

Day 4

ChatGPTとzsync(zfs同期スクリプト)を作った。

Posted at

結果としての スクリプトはここに置いてあります。

zsync.sh remote_user@remote_host local_dataset

とすると、 datasetのスナップショットを作成してをremote_host に同期します。
remote_userにはsudoの実行権限が必要です。

remote側のdataset名を変えたければ
zsync.sh remote_user@remote_host local_dataset remote_dataset

の様にremote_dataset名をしていできます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
今年の2月ですが、ChatGPTに

zfsでリモートサーバとの差分同期を行うスクリプト

と書きました。途中で実行したので本当はスクリプト名をしりたかっただけなのですがなんと奴はスクリプトを書いてきたのです。まだ慣れてない時なので意外でしたがこれでChatGPTの可能性がわかりました。

この時は、残念ながら履歴に残ってないけど無料版でした

その時のスクリプトは、ごくごくシンプルでした。
何回かやりとりして面白くなったので有料版にしました。

履歴に残っていたのはこれで。

zfsでリモートサーバとの差分同期を毎分行うスクリプトをください
https://chat.openai.com/share/7d928ab3-b40f-4ddc-8d32-e9e75ca413fd

リンクをみてくれればわかりますが、
スナップショットの管理を私がしないとならない。
毎分の処理を無限ループでやってました。

なので、追加の質問で、修正させてます。
ただ、ここで私は、彼をみすてて、別の彼を召喚してます。

https://chat.openai.com/share/c01f8815-2ba4-42e2-85f3-fce14f913ae9
この彼も見捨てて
https://chat.openai.com/share/7b32e616-0824-4a39-8040-9a0580cacc49
こんな会話してますが
もう結構グダグダです。

そこでさらに別のを召喚
https://chat.openai.com/share/691093a2-4fca-480f-bf59-c0b145688c83

このあと何回かあった気がするけど
実行するつどスナップショットがたまるのでそれの消去を考えさせてます。
https://chat.openai.com/share/aeda10a3-91c6-48db-9e70-777e168bc108

また、ここでは、中断の再開というレジューム機能をつけさせてます。
https://chat.openai.com/share/10ee4e8b-3f42-4b8e-b2b2-043c4b3bf994
が、これを私が気に入らなかたみたいで再度別のを召喚
https://chat.openai.com/share/11b4bacf-9133-4054-887d-19a1204999d2

ここでは、デバッグの結果の問題点を指摘して書き直させてる
https://chat.openai.com/share/619c50b6-04e7-4732-8c89-afa039cf616c

ここでは、ロジックの修正を指示
https://chat.openai.com/share/caafcbd8-ef55-4114-b81e-271f0276ee28

ここでは、起動オプションについてやりとりしてます。
奴の提案を私は受け入れてる
https://chat.openai.com/share/3a23b8c2-cab6-4c7d-8021-f2ea194656bf

ここでは、エラーメッセージの改善を指示してます
https://chat.openai.com/share/5f19419c-dbb8-4631-aa3c-b33fc0dfe88d

ここでは、mbufferを入れて転送効率アップしようとしてるのですが、入れる時と入れないときでベタにスクリプトを書いてるので無駄をやめれと言ってます。
https://chat.openai.com/share/d03dd43c-ce64-4c00-ac52-1d9fc1778127

うまく動かないので修正依頼
https://chat.openai.com/share/9bb789e0-6ff2-4a1e-ac5d-474c9dc71790

ダラダラ長くなってるので、修正指示
https://chat.openai.com/share/9e3088b7-77bf-4d79-8369-29214f3a4571

またバグ対応
https://chat.openai.com/share/351ca1da-0496-4ec4-9afb-a7ffa764eee2

このあと、いろいろやって、現在のスクリプトになってます。気に入らないところがあったので
最終的には私が書いてます。じつはまだ書きかけの2.0があるのですが、言うことちゃんと聞いてくれないので中断したままです。どうみても無駄な記述なのでサブルーチン化させるのですが、変数を間違えたりしてなかなか進まない。

巷では、プロンプトエンジニアリングといって
まるで、仕様書の様なものを与えて、一発で答えを得ようとする記事が蔓延してますが
仕様書つくるぐらいならプログラムした方が早いというのをプログラマは知ってると思います。しかしChatGPTつかえば、調べる事を奴に任せられます。

プログラマ不要になるとか言われてますが、いわれた事を言われた様に作成するプログラマは要らなくなるでしょうがまだ当分そう簡単にはいかないでしょう。一番最初のでも動きます。だけどそれじゃ使えないのです。
10ヶ月前とは、CHatGPTは進化してますが、やはりまだまだです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?