انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: پاک کردن حافظه کش و رم  (دفعات بازدید: 1200 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین milad512

  • Newbie
  • *
  • ارسال: 9
  • جنسیت : پسر
پاک کردن حافظه کش و رم
« : 03 امرداد 1398، 03:22 ب‌ظ »
سلام
اقا کسی یه راهنمایی به ما میکنه که دستور پاک کردن حافظه کش و رم رو توی هر نیم ساعت بتونم رو اوبونتو اجرا کنم یعنی هر 30 دقیقه دستور اجرا بشه


آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #1 : 03 امرداد 1398، 03:48 ب‌ظ »
سلام.
می‌تونی از Cron استفاده کنی.

sudo crontab -e

این دستور کرون رو با اجازهٔ روت اجرا می‌کنه.
بعد داخلش اینو بنویس:

30 * * * * echo "3" | tee /proc/sys/vm/drop_caches > /dev/null

این خودش هر 30 دقیقه کل Cache رو خالی می‌کنه.
اگه بخوای در کنارش swap هم خالی بشه، کافیه خاموش و روشنش کنی. یعنی:

30 * * * * sync; swapoff -a; sleep 2s; swapon -a

و یا این‌که بذاری‌شون پشت سر هم:
30 * * * * echo "3" | tee /proc/sys/vm/drop_caches > /dev/null; sync; swapoff -a; sleep 2s; swapon -a

نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین milad512

  • Newbie
  • *
  • ارسال: 9
  • جنسیت : پسر
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #2 : 04 امرداد 1398، 11:25 ق‌ظ »
خیلی ممنون

آفلاین ###darklinux$$$

  • Sr. Member
  • *
  • ارسال: 441
  • جنسیت : پسر
  • ارزان زیستن به معنی حکم شما بر پول است نه تنگدستی
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #3 : 04 امرداد 1398، 11:53 ق‌ظ »
خب حالا این به چه درد میخوره ???
اها فهمیدم پس برنامه ها و ابزار های فعال توی اوبونتو بسته میشن مال اونه ;D
این صفحه رو با پی دی اف سیو میکنم
« آخرین ویرایش: 04 امرداد 1398، 11:56 ق‌ظ توسط ###darklinux$$$ »

آفلاین ###darklinux$$$

  • Sr. Member
  • *
  • ارسال: 441
  • جنسیت : پسر
  • ارزان زیستن به معنی حکم شما بر پول است نه تنگدستی
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #4 : 04 امرداد 1398، 12:04 ب‌ظ »
من تنضیماتشو خراب کردم چطور میشه برش گردونم به حالت اول ](*,) ](*,) ](*,)

آفلاین ###darklinux$$$

  • Sr. Member
  • *
  • ارسال: 441
  • جنسیت : پسر
  • ارزان زیستن به معنی حکم شما بر پول است نه تنگدستی
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #5 : 04 امرداد 1398، 12:04 ب‌ظ »
هر چی متن داشت اون تو پاک کردم
 ](*,) ](*,) ](*,) ](*,)

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #6 : 04 امرداد 1398، 02:10 ب‌ظ »
متن‌های داخل cron مهم نیستن! فقط راهنما هستن. مشکلی نداره اگه پاک بشن.  :)
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین ###darklinux$$$

  • Sr. Member
  • *
  • ارسال: 441
  • جنسیت : پسر
  • ارزان زیستن به معنی حکم شما بر پول است نه تنگدستی
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #7 : 04 امرداد 1398، 04:44 ب‌ظ »
متن‌های داخل cron مهم نیستن! فقط راهنما هستن. مشکلی نداره اگه پاک بشن.  :)
پس خاک تو سرم ](*,) ](*,) ](*,) ](*,)
ضایع شدم رفت


راستی من متنو گذاشتم حالا کش برنامه ها 30 دقیقه یه بار پاک میشه آیا ??? ??? یا فقط برنامه های فعال برای راحتی رم بسته میشه

آیا میشه برای پاک کردن مخازن دانلود شده ی apt یه همچین چیزی فعال کنم با این تفاوت هر موقع برنامه نصب کنم یا آپدیت کنم مخازن پاک بشه \\:D/ \\:D/ \\:D/

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #8 : 04 امرداد 1398، 04:56 ب‌ظ »
خالی کردن cache کاری به بستن برنامه‌ها نداره!
فقط مقدار حافظهٔ کَش شده رو خالی می‌کنه.
سواپ هم اگه خالی بشه، حافظه‌ش برمی‌گرده داخل Ram.

برای تست کردن این‌که واقعاً انجام می‌شه یا نه، باید سر نیم‌ساعت (یعنی 30 دقیقهٔ هر ساعت) htop رو بیاری بالا و همون لحظه ببینی. یا دستورش رو بدون اون ستاره‌ها و عدد 30، توی ترمینال بذاری و اجرا کنی. البته اینا نیاز به sudo دارن واسه همین گفتم توی cron ریشه باید گذاشته بشن!

برای حذف کردن بسته‌ها بعد از نصب و یا آپگرید، کافیه بعد از دستور، بنویسی:  sudo apt autoclean
یعنی:

sudo apt update; sudo apt autoclean

یا اینکه اسکریپت بنویسی و داخلش همهٔ این دستورات رو بدی و بعد اسکریپتت رو اجرا کنی که خب کار اصولی و بهتریه منتها نوشتنش طول می‌کشه.
مثلاً یه اسکریپت نوشتم که هرچی خواستم نصب کنم رو می‌ده به دانلود منیجر دانلود می‌کنه و بعد نصب می‌کنه. هم برای نصب، هم آپگرید و هم حذف بسته‌های اضافی. اسمشو هم گذاشتم aptd. مثلاً بخوام آپدیت کنم می‌زنم:

aptd -d

و همین یه دستور توی ترمینال کافیه تا اپت کار کنه و بسته‌های آپگرید رو بده به دانلود منیجر و با آخرین سرعت بگیره و بعد بریزه توی پوشهٔ بسته‌ها و بعد بسته‌ها رو به‌روز کنه.

این هم کدش:

#!/bin/bash
## An application to get updated packs more quickly with aria2 download manager.
## Upgrade, Install and Autoremove Packages.
## Save Package's File in "/var/cache/apt/archive".

# Variables:
ARGS="$*"
## "$*" is input argument.


# Conditions:
HELP (){
    echo -e "\n\
    \t -i\
    \n\t\t Install Package.\
    \n\
    \n\t -d\
    \n\t\t Distro Upgrade and Packages.\
    \n\
    \n\t -r\
    \n\t\t Autoremove Packages.
    \n"
    exit
} ## The user can see the program's general guide using the argument (-h).
BAD_ARG (){
    echo -e "Bad Arguments \nSee -h option"
    exit
} ## Use when the user entered the wrong argument.
NO_ARG (){
    echo -e "There is no argument. try again. \nSee -h option"
    exit
} ## Use when the argument is not entered.


# Functions:
OPT_CHECK (){
    if [[ ! -z "$OPTARG" ]];then
if [[ "$ARGS" != "-$OPTIONS $OPTARG" ]];then
    BAD_ARG
        fi
    elif [[ "$ARGS" != "-$OPTIONS" ]];then
    BAD_ARG
    fi
} ## Checking the arguments with pre-selected states in the program.
DEB_GET (){
    if [[ ! -d ~/Downloads/debtmp ]];then
mkdir ~/Downloads/debtmp
    fi
    grep 'http' | cut -f2 -d\' > ~/Downloads/debtmp/aptlink
    aria2c -c -j1 -x16 -s16 -k1m \
   -i ~/Downloads/debtmp/aptlink -d ~/Downloads/debtmp/
}
## A Directory is required to perform the tasks of this program.
## So if you do not have it, the Directory will be made.
## When this function is in the body of the script,
## The output of the apt command is taken and downloaded to the aria2 program.
NO_DEB (){
    if [[ $CHECK != "0" ]];then
read -r -p "Do you want to delete temporary deb files? [y/No]: " ANSWER_0
if [[ "$ANSWER_0" == "y" ]];then
    rm -rf ~/Downloads/debtmp
fi
exit
    fi
}
## If the download operation is not successful,
## the program stops and asks the user to remove the incomplete files.
DEB_MOVE (){
    sudo mv -vf ~/Downloads/debtmp/*deb /var/cache/apt/archives/
    rm -rf ~/Downloads/debtmp
}
## This function transfers the downloaded files,
## to the corresponding directory for installation.
IF_DEB (){
    if [[ -z $(ls -1 ~/Downloads/debtmp/*deb 2> /dev/null) ]];then
rm -rf ~/Downloads/debtmp
    else
DEB_MOVE
    fi
}
## This is a cleanup function.
## If there are no packages to download, delete the empty directory.
## Otherwise, it puts the packages in place for installation.
DIST_UPGRADE (){
    sudo apt dist-upgrade --print-uris -y | DEB_GET
    CHECK="$?"
    NO_DEB
    IF_DEB
    sudo apt dist-upgrade -y
} ## This function automatically upgrades updated patches.


# Body:
## This program uses "getopts" to interact with the user.
case "$1" in
    "") ### Empty argument.
NO_ARG;;
    [!-]*) ### Arguments that do not start with "-".
BAD_ARG;;
    -) ### An argument that consists of only "-".
BAD_ARG
esac ## The correct or incorrect condition of the first argument.

# Getopts Section:
## Part for user interaction. Getting input from the user,
## and executing the command corresponding to the input command.
while getopts ":dhi:r" OPTIONS;do
    ## Two points ":" in the first string mean the removal of additional message.
    ## Two points ":" after each word means more input.
    case "$OPTIONS" in
h)
    OPT_CHECK
    HELP;;
i)
    OPT_CHECK
    sudo apt install $OPTARG --print-uris -y | DEB_GET
    ## --print-uris: It means receiving packet links.
    CHECK="$?"
    NO_DEB
    IF_DEB
    sudo apt install $OPTARG -y;;
d)
    OPT_CHECK
    DIST_UPGRADE
    pkill -SIGRTMIN+13 i3blocks
    ## For restart i3blocks and refresh aptlist.
    ;;
r)
    OPT_CHECK
    sudo apt autoremove;;
*)
    BAD_ARG
    esac
done

نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین ###darklinux$$$

  • Sr. Member
  • *
  • ارسال: 441
  • جنسیت : پسر
  • ارزان زیستن به معنی حکم شما بر پول است نه تنگدستی
پاسخ : پاک کردن حافظه کش و رم
« پاسخ #9 : 04 امرداد 1398، 06:41 ب‌ظ »
خالی کردن cache کاری به بستن برنامه‌ها نداره!
فقط مقدار حافظهٔ کَش شده رو خالی می‌کنه.
سواپ هم اگه خالی بشه، حافظه‌ش برمی‌گرده داخل Ram.

برای تست کردن این‌که واقعاً انجام می‌شه یا نه، باید سر نیم‌ساعت (یعنی 30 دقیقهٔ هر ساعت) htop رو بیاری بالا و همون لحظه ببینی. یا دستورش رو بدون اون ستاره‌ها و عدد 30، توی ترمینال بذاری و اجرا کنی. البته اینا نیاز به sudo دارن واسه همین گفتم توی cron ریشه باید گذاشته بشن!

برای حذف کردن بسته‌ها بعد از نصب و یا آپگرید، کافیه بعد از دستور، بنویسی:  sudo apt autoclean
یعنی:

sudo apt update; sudo apt autoclean

یا اینکه اسکریپت بنویسی و داخلش همهٔ این دستورات رو بدی و بعد اسکریپتت رو اجرا کنی که خب کار اصولی و بهتریه منتها نوشتنش طول می‌کشه.
مثلاً یه اسکریپت نوشتم که هرچی خواستم نصب کنم رو می‌ده به دانلود منیجر دانلود می‌کنه و بعد نصب می‌کنه. هم برای نصب، هم آپگرید و هم حذف بسته‌های اضافی. اسمشو هم گذاشتم aptd. مثلاً بخوام آپدیت کنم می‌زنم:

aptd -d

و همین یه دستور توی ترمینال کافیه تا اپت کار کنه و بسته‌های آپگرید رو بده به دانلود منیجر و با آخرین سرعت بگیره و بعد بریزه توی پوشهٔ بسته‌ها و بعد بسته‌ها رو به‌روز کنه.

این هم کدش:

#!/bin/bash
## An application to get updated packs more quickly with aria2 download manager.
## Upgrade, Install and Autoremove Packages.
## Save Package's File in "/var/cache/apt/archive".

# Variables:
ARGS="$*"
## "$*" is input argument.


# Conditions:
HELP (){
    echo -e "\n\
    \t -i\
    \n\t\t Install Package.\
    \n\
    \n\t -d\
    \n\t\t Distro Upgrade and Packages.\
    \n\
    \n\t -r\
    \n\t\t Autoremove Packages.
    \n"
    exit
} ## The user can see the program's general guide using the argument (-h).
BAD_ARG (){
    echo -e "Bad Arguments \nSee -h option"
    exit
} ## Use when the user entered the wrong argument.
NO_ARG (){
    echo -e "There is no argument. try again. \nSee -h option"
    exit
} ## Use when the argument is not entered.


# Functions:
OPT_CHECK (){
    if [[ ! -z "$OPTARG" ]];then
if [[ "$ARGS" != "-$OPTIONS $OPTARG" ]];then
    BAD_ARG
        fi
    elif [[ "$ARGS" != "-$OPTIONS" ]];then
    BAD_ARG
    fi
} ## Checking the arguments with pre-selected states in the program.
DEB_GET (){
    if [[ ! -d ~/Downloads/debtmp ]];then
mkdir ~/Downloads/debtmp
    fi
    grep 'http' | cut -f2 -d\' > ~/Downloads/debtmp/aptlink
    aria2c -c -j1 -x16 -s16 -k1m \
   -i ~/Downloads/debtmp/aptlink -d ~/Downloads/debtmp/
}
## A Directory is required to perform the tasks of this program.
## So if you do not have it, the Directory will be made.
## When this function is in the body of the script,
## The output of the apt command is taken and downloaded to the aria2 program.
NO_DEB (){
    if [[ $CHECK != "0" ]];then
read -r -p "Do you want to delete temporary deb files? [y/No]: " ANSWER_0
if [[ "$ANSWER_0" == "y" ]];then
    rm -rf ~/Downloads/debtmp
fi
exit
    fi
}
## If the download operation is not successful,
## the program stops and asks the user to remove the incomplete files.
DEB_MOVE (){
    sudo mv -vf ~/Downloads/debtmp/*deb /var/cache/apt/archives/
    rm -rf ~/Downloads/debtmp
}
## This function transfers the downloaded files,
## to the corresponding directory for installation.
IF_DEB (){
    if [[ -z $(ls -1 ~/Downloads/debtmp/*deb 2> /dev/null) ]];then
rm -rf ~/Downloads/debtmp
    else
DEB_MOVE
    fi
}
## This is a cleanup function.
## If there are no packages to download, delete the empty directory.
## Otherwise, it puts the packages in place for installation.
DIST_UPGRADE (){
    sudo apt dist-upgrade --print-uris -y | DEB_GET
    CHECK="$?"
    NO_DEB
    IF_DEB
    sudo apt dist-upgrade -y
} ## This function automatically upgrades updated patches.


# Body:
## This program uses "getopts" to interact with the user.
case "$1" in
    "") ### Empty argument.
NO_ARG;;
    [!-]*) ### Arguments that do not start with "-".
BAD_ARG;;
    -) ### An argument that consists of only "-".
BAD_ARG
esac ## The correct or incorrect condition of the first argument.

# Getopts Section:
## Part for user interaction. Getting input from the user,
## and executing the command corresponding to the input command.
while getopts ":dhi:r" OPTIONS;do
    ## Two points ":" in the first string mean the removal of additional message.
    ## Two points ":" after each word means more input.
    case "$OPTIONS" in
h)
    OPT_CHECK
    HELP;;
i)
    OPT_CHECK
    sudo apt install $OPTARG --print-uris -y | DEB_GET
    ## --print-uris: It means receiving packet links.
    CHECK="$?"
    NO_DEB
    IF_DEB
    sudo apt install $OPTARG -y;;
d)
    OPT_CHECK
    DIST_UPGRADE
    pkill -SIGRTMIN+13 i3blocks
    ## For restart i3blocks and refresh aptlist.
    ;;
r)
    OPT_CHECK
    sudo apt autoremove;;
*)
    BAD_ARG
    esac
done
ممنون فک کنم از خود سازنده ی bash بیشتر بلدی
« آخرین ویرایش: 04 امرداد 1398، 06:43 ب‌ظ توسط ###darklinux$$$ »