প্রতি ব্যবহারকারী এসএসএইচ-ট্র্যাফিক পর্যবেক্ষণ করুন


9

আমাদের একটি ব্যাকআপ অ্যাপ্লিকেশন রয়েছে যা প্রতি 12 ঘন্টা অন্তর একবার চলে।

একাধিক সার্ভার, ডেস্কটপ এবং ল্যাপটপগুলি একটি ইসি-ইনস্ট্যান্সের সাথে সংযুক্ত হয় এবং তাদের নিজস্ব লগ-ইন শংসাপত্রগুলি ব্যবহার করে এসএফটিপি এর মাধ্যমে একটি ব্যাকআপ চাপায়।

যদি তাদের কোনও ফাইল পুনরুদ্ধার করা দরকার হয় তবে তারা একটি সাধারণ এসএফটিপি-ক্লায়েন্টের মাধ্যমে ফাইলগুলি ব্রাউজ করতে এবং তাদের ফাইলগুলি পুনরুদ্ধার করতে পারে। এটি গত 8 মাস ধরে খুব ভাল চলছে।

আমি জানতে চাই যে এসএসএইচ এর মাধ্যমে ব্যবহারকারী হিসাবে প্রতি মাসে কতগুলি ডেটা স্থানান্তরিত হয়। আমার গত 8 মাস ধরে লগগুলির দরকার নেই, তবে এমন কিছু যা এখন থেকে এটি রেকর্ড করবে তা দুর্দান্ত হবে।

এমন কিছু আছে যা আমাকে এটি করার অনুমতি দেয়?

ওএস: উবুন্টু 10.10

উত্তর:


6

এটি কিছুটা অদ্ভুত-যাদু নিয়েছিল, এটি আমার সহকর্মী এবং আমি যেখানে একসাথে রাখতে সক্ষম হয়েছিল।

#!/bin/bash

main() {
  if [ -e $1 ] ; then
    MONTH=$(date | awk '{ print $2 }')
  elif [ $1 -ge 1 -a $1 -le 12 ] ; then
    month $1
  else
    exit 1
  fi

  echo
  echo "Usage statistics for month $MONTH"
  echo

  USERS=(`awk '/^'$MONTH'.*session opened for local user.*$/ { print $(NF-2) } ' /var/log/auth.log* | sort | uniq`)
  for i in "${USERS[@]}"
  do :
    echo "################################"
    echo "Usage for user: $i"
    READ=0
    WRITTEN=0
    #processes for this user  
    PROCS=(`awk '/^'$MONTH'.*session opened for local user '$i'.*$/ { gsub("\\[|]|sftp-server|:","", $(NF-8)); print $(NF-8) } ' /var/log/auth.log* | sort | uniq`)
    for j in "${PROCS[@]}"
    do :

      TEMP_READ=$(awk '/^'$MONTH'.*\['$j'\].*\ read\ [0-9]+\ written\ [0-9]+$/ { sum+=$(NF-2)}END{ print sum}' /var/log/auth.log*)
      READ=$(($TEMP_READ+$READ))
      TEMP_WRITTEN=$(awk '/^'$MONTH'.*\['$j'\].*\ read\ [0-9]+\ written\ [0-9]+$/ { sum+=$(NF)}END{ print sum}' /var/log/auth.log*)
      WRITTEN=$(($TEMP_WRITTEN+$WRITTEN))
    done
    echo "Read     $(($READ/(1024*1024))) MiB"
    echo "Written  $(($WRITTEN/(1024*1024))) MiB"
    echo "################################"
    echo
  done
}

month() {
case "$1" in
  1)  MONTH='Jan'
    ;;
  2)  MONTH='Feb'
    ;;
  3)  MONTH='Mar'
    ;;
  4)  MONTH='Apr'
    ;;
  5)  MONTH='May'
    ;;
  6)  MONTH='Jun'
    ;;
  7)  MONTH='Jul'
    ;;
  8)  MONTH='Aug'
    ;;
  9)  MONTH='Sep'
    ;;
  10)  MONTH='Oct'
    ;;
  11)  MONTH='Nov'
    ;;
  12)  MONTH='Dec'
    ;;
  *) echo 'Crash and Burn!'
     exit 1
   ;;
esac
}

main $1
exit 0

Sshd_config এ আমি এটি রেখেছি:

 Subsystem sftp /usr/lib/openssh/sftp-server -l VERBOSE

সতর্কতা : এই স্ক্রিপ্ট মেমরি hogs! আপনার যদি বড় লগফাইল থাকে তবে স্ক্রিপ্টটি শেষ হতে 10 মিনিট সময় লাগতে পারে (ইসি 2 মাইক্রোতে পরীক্ষা করা)।


লজ্জা আপনি নিজের অনুগ্রহ পেতে পারবেন না ...
ওয়ারেন

2
আমি খুশি যে আমি এমন কিছু পেয়েছি যা কার্যকর :-)। এমনকি এটি আমাকে অতীতের পোকার পরিসংখ্যানগুলিও পেতে দেয়। আমি একজন সুখী মানুষ ;-)।
বার্ট ডি ভোস

1

আপনি আইপি দ্বারা ব্যবহারকারী লগইনগুলি ট্র্যাক করতে পারেন (লগ ফাইলগুলিতে উপলব্ধ) এবং তারপরে আইপি দ্বারা পোর্ট 22 ট্র্যাফিকের ট্র্যাক রাখতে প্রায় কোনও ট্র্যাফিক পর্যবেক্ষণ সমাধান (নেটফ্লো এবং আইপিট্রাফ মাথায় আসে) ব্যবহার করতে পারেন।

দুর্ভাগ্যক্রমে, পূর্ববর্তী কয়েক মাসের historicalতিহাসিক ব্যবহার উপলব্ধ না থাকলে যদি আপনার কাছে ইতিমধ্যে এই প্রভাব সেট আপ করার জন্য কিছু না থাকে।



0

প্রতিটি ফাইলের মধ্যে কী করা হয়েছে তা জানার জন্য অডিট করা একটি ভাল ইউটিলিটি। এটি আপনার শক্তির প্রয়োজন হতে পারে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.