背景
lynx
長年、私は自動ダンピング(cron経由)、処理(awk
、sed
および使用tr
)、およびmail
Webコンテンツ(bsd-mailx)を使用してきました。それは完全に動作しました。最近まで、Webサイトのセキュリティ証明書が期限切れになり、愚かなネットワーク管理者はあえて更新できませんでした。続行する前にlynx
、証明書を躊躇し、ユーザー入力を待つと、自動化されたソリューションが失敗します。
試してみるソリューション
だから別の解決策を探し始めました。スイッチcurl
があって期待になります--insecure
。実際には、ページテキストをダウンロードして電子メール本文に挿入できるより標準的なテキスト出力として処理し、ファイルに保存できます。
charset=binary
しかし、私が経験している問題は、ファイルが(の出力に応じて)システムによって何とか処理されていることです。file -i
それはおそらく、ファイルにラテン文字ではなくアルファベット(キリル文字)のテキストが含まれているからです。だからcat
私が自分自身に送信する電子メールの本文にファイルの内容を入れようとすると、メールプログラム(bsd-mailx)がそれを電子メールに挿入するのではなく添付ファイルとして処理しようとします。これは私が望むものではありません。のテキスト。
関連するすべての問題を理解するのが難しいので、これまで解決策を見つけることができませんでした。
質問
- ファイルがバイナリとして保存/認識されないようにする方法はありますか?
それとも、どういうわけかバイナリで有効な文字セットに変換できますか?
- ファイルの内容をクリップボードにコピーして新しいテキストファイルに貼り付けると、私が作成したすべての内容が機能します。
file -i
表示され、内容をメール本文にcharset=utf-8
正常にインポートできますが、内容は考慮されません。cat
添付ファイル。しかし、私はcronタスクで自動化できるものを探しているので、これは私が望む解決策ではありません。
- ファイルの内容をクリップボードにコピーして新しいテキストファイルに貼り付けると、私が作成したすべての内容が機能します。
添付:以下でも同様の問題があった思い出がありますが、lynx
IIRC呼び出し時にスイッチを追加して解決しました。-display_charset=UTF-8
lynx
修正する
ここでは、Lucasの提案を使用して動作します。単純化し、よりエレガントにする簡単な方法があると確信している、やや薄暗い2段階のプロセスですが、作業は完了です。誰でも改善を提供できますか?明らかにとは、基本的にhtmlタグと不要なスペースを削除するために私が使用している実際のコマンドを置き換えます。
curl --insecure https://my.url.html >/home/user/file.html
lynx -display_charset=UTF-8 -dump -nonumbers -nolist /home/user/file.html | sed fu begin | sed fu end | tr fu >/home/user/file.txt
cat /home/user/file.txt | mail -s "Today's file" [email protected]
sed fu
tr fu
sed
tr
ベストアンサー1
curl
.NETの代わりにHTTPieを使用してくださいlynx
。このHTTPクライアントには、--verify no
SSL証明書の確認をスキップするオプションがあります。 HTTPieの使用は非常に簡単です。
http --verify no -F https://google.com
また見てくださいHTTPieウェブサイト少し残った良い例使用。 HTTPieオプションに関する追加情報:
man http