セキュリティのためにプライベートシェルスクリプトをどこに配置する必要がありますか?
私はいくつかのカスタム機能を作るためにshを学んでいます。私はスタック交換で確認し、誰かが私の個人的なスクリプトを下に置くと、実際にそのようなことをするよう~/binなマルウェアを探索できると言ったので、私の個人的なスクリプトのための安全な場所を探しています。ls()rm -rf
私はいくつかのカスタム機能を作るためにshを学んでいます。私はスタック交換で確認し、誰かが私の個人的なスクリプトを下に置くと、実際にそのようなことをするよう~/binなマルウェアを探索できると言ったので、私の個人的なスクリプトのための安全な場所を探しています。ls()rm -rf
文字列の下で条件付き演算子を比較する必要があります。したがって、特定のタスクは、81.1.4_r4345が特定のタスクを実行するか、「完了」と一致する場合にのみ実行されます。 vasanth-releases_81.1.4_r4345.tar.gz vasanth-releases-done.tar.gz If [[ $var == ‘vasanth-releases_{0-9}_{0-9}.tar.gz ]] ; then echo ‘True’ Elsif [[ $var == ‘Vasanth-releases-{a-z}.tar.gz ]]; then echo ‘False’ else echo ‘default’ fi 上記の試みは期待どおりに機能しませんでした。したがって、これら2つのファイルには正規表現形式が必要です。この問題を解決するのに役立ちますか? ありがとう
rm -rf .* を使用してサブディレクトリを削除しようとしましたが、サブフォルダの削除に失敗しました。最大5000個まで処理できますが、10000個以上のサブディレクトリを一度に削除することはできません。サブディレクトリからファイルを削除してからサブディレクトリを削除するスクリプトを作成しました。 # loop & print a folder recusively, print_folder_recurse() { for i in "$1"/*;do if [ -d "$i" ];then print_folder_recurse "$i" #echo "dir: $i" elif [ -f "$i" ]; then #echo "file: $i" rm -rf $i fi done #echo "dir: $1" if [[ "$1" != "$path" ]]; then #echo "dir : $1" rm -rf $1o fi } 注:このスクリプトも時々失敗します。ディレクトリサイズは常に20 GBに制限されるわけではありません。今後はるかに大きくなる可能性があります。 この種の問題を処理するより良い方法を知っているLinuxの専門家はいますか?
先生が提供したシェルスクリプトを見ていますが、awk ' $2>0.10 && $2 > 0.10 { print $1,$2 }'その意味を理解するのに役立つ人はいますか?特に、$2>0.102番目の列の値を印刷すると0.10より大きいですか?
閉鎖。この質問はもう少し尋ねる必要があります集中。現時点では回答は許可されていません。 この質問を改善したいですか?1つの問題にのみ焦点を当てるように質問を更新してください。この記事を編集してください。 閉鎖3年前。 この問題を改善する 提供される文書: $ cat CronConfig `FILE SYSTEM` `------------` warningThreshold: 77 criticalThreshold: 99 `MEMORY` `-------` warningThreshold: 66 criticalThreshold: 88 `CPU` `----` intervalCount: 6 intervalSecs: 7 warningThreshold: 99 criticalThreshold: 88 CronConfig上記の内容を含むファイルがあります。私は値を使用し、warningThreshold次のような出力が必要です。MEMORYcriticalThresholdCPU 66 88 この値を取得するには、コマンドを使用します。 (しかし、正しい方法でやっているかどうかはわかりません。) awk 'BEGIN{FS="\n"; RS="------------"} {print $7}' CronConfig | awk 'NF {print $2}' awk 'BEGIN{FS="\n"; RS="------------"} {print $15}' CronConfig | awk 'NF {print $2}'
コメントのポンド記号と実際のコメントの間にスペースがあるシェルスクリプトがあります。 # a comment at the beginning of a line echo foo # a comment trailing after a command その他使用できないもの #another comment at the beginning of a line echo bar #another comment trailing after a command この決定はスクリプトの実際の実行に影響しますか、それともコーディングスタイルの問題ですか?
私は現在ハードウェア開発をしており、シリアルポートに接続されているデバイスを継続的に接続/接続解除/再開しています。 (通常は/dev/ttyUSB0) gnome-terminalデバイスが接続されているか、再起動が完了したかなどを「一目で」簡単に確認できるように、画面の端の小さなウィンドウで実行されるシリアルポートを監視する基本スクリプトがあります。ウィンドウは常に表示されます。監視目的で。 Script( monitorSerialPorts) は基本的ですが便利です。 while [ true ] do clear printf "\n Serial Devices: " ls /dev/ttyUSB* 2> /dev/null || (clear ; printf "\n No Devices Detected") sleep 2 done 1行でログインしたときに実行される2番目のスクリプト()でそれを呼び出すmonitorSerialPortsLauncherと、必要な場所に小さなウィンドウが素敵に作成されます。 gnome-terminal --window-with-profile=RedonYellow --command=$HOME/scripts/monitorSerialPorts --geometry=26x3-20 質問:ありますか?きれいこの機能を単一のスクリプトにどのように統合できますか? (また、このプロセスやスクリプトの改善のための一般的な提案も歓迎します)
sudoでスクリプトを実行する方法については、次の2つの説明があります。 sudoコマンドを実行するユーザーには、ファイルに対する実行権限も必要です。 ファイル内のコマンド以外のファイルのみがrootとして実行されます。 私が聞いていることを疑う理由はありませんが、次の設定が実行されていて、上記の2つの文が正しい場合は、その理由を知りたいと思います。 次のスクリプトがあります。 /var/www/bash_scripts/test/set_permissions.sh スクリプトには以下が含まれます。 chown -R jason:www-data /var/www/test.site.com find /var/www/test.site.com -type f -exec chmod 664 {} \; find /var/www/test.site.com -type d -exec chmod 775 {} \; このスクリプトの権限は次のとおりです。 -rwxrwxr-- 1 root root 200 Nov 21 22:49 set_permissions.sh 私の/etc/sudoersファイルには、下部に次の行が追加されています。 www-data ALL=(ALL) NOPASSWD: /var/www/bash_scripts/test/set_permissions.sh user で実行される PHP プロセスでスクリプトを実行すると、www-dataスクリプトが期待どおりに実行され、その中のすべてのコマンドが実行されます。 上記のステートメント1.が正しい場合、このスクリプトはrootユーザーのみが実行できるため、絶対に実行しないでください。上記のステートメント2が正しい場合、スクリプトのコマンドは実行されません。 私はこの2つの声明が正しいかどうかを理解しようとしています。それでは、上記の動作を引き起こすために何をしましたか? 編集する www-data持つ/var/www/test.site.com PHPコードは次のようにコマンドを実行します。 exec('sudo /var/www/bash_scripts/site/test/set_permissions.sh 2>&1')
端末で実行するスクリプトがあり、いくつかの出力が印刷されます。たとえば、キーを押さずに(そしてスクリプトを変更せずに)5秒後にバックグラウンドで送信したいとします。 Bashスクリプトのようにスクリプトを起動してしばらくスリープしてから、実行中のアプリケーションをバックグラウンドで送信します。いったんバックグラウンドに入ると、出力に気になりません。 UPD:うまくいかないもの: nohup afterスクリプトの使い方&- 出力がまだ端末に送信されている間、すぐにバックグラウンドで送信されます(これは私が避けたいものです)
Prvt_Yadvは、スクリプトを使用してテキストファイルのパッケージリストからパッケージをインストールする方法を説明するいくつかのコードを書きました。 私の質問は、彼が選んだ組み合わせを選んだ理由を説明できる人はいますか? 上記の方法を使わずに動作させることができましたが、非常に不安定です。 私のコード: #!/bin/bash #===================================== # Path to Instalation & Scripts #===================================== path2Dev="/home/`id -u -n`/Development/Install" input="$path2Dev/DepList_Fedora.txt" #-------------------------------------- #===================================== ## Make stringBuild Global #===================================== export stringBuild=" " #-------------------------------------- #===================================== ## Build string with no Fluff ## from List of packages #-------------------------------------- while IFS= read -r line do stringBuild+=" $line" done < "$input" ### End of Loop ### ############################# # Get Dependencys for Build # from values in ("input") #============================ sudo dnf group install --assumeyes "C Development Tools and Libraries" ; echo $stringBuild ## De-Bug sudo dnf install --assumeyes "$stringBuild" ## Tried `$stringBuild` and $stringbuild Prvt_Yadvコード: sudo dnf install --assumeyes $(awk -F ',' 'BEGIN {ORS=" "} {for(i=1;i<=NF;i++) {print $i}}' $input) これが元のコードよりも安定して見えるのはなぜですか?理由を説明できますか? DepList_Fedora.txt bison-devel arm-none-eabi-gcc arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ arm-none-eabi-binutils-cs patch gperftools-devel ncurses-devel cdk cdk-devel ccrtp ccrtp-devel doxygen python3-hidapi mingw64-hidapi hidapi-devel xclip autoconf213 libtool-ltdl-devel python2-devel guile nodejs-node-expat mingw64-libltdl libusb-devel libusb autoconf texinfo libtool libftdi-devel gcc-arm-linux-gnu flex gperf git bison zlib
文字列があります。 bDate = 20221201 5-6の文字が01から12の範囲にあることを確認したいと思います。この例では、12と一致する必要があります。 20221309の場合、5〜6の文字が01〜12の範囲に属していないと言うべきですか?私はシェルにカットを使用しています。