Заметки:
Параметры ядра Linux можно устанавливать так:
Половину всей "MemTotal" отдаём под hugepages (при "MemTotal Kb"/2048 была бы отдана вся память)
echo "vm.nr_hugepages = $(awk '$1 == "MemTotal:"{tmp=$2/4096; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
Максимальный размер сегмента разделяемой памяти составляет половину всей "MemTotal"
sed -ie 's/^kernel.shmmax/#kernel.shmmax/g' /etc/sysctl.conf
echo "kernel.shmmax = $(awk '$1 == "MemTotal:"{tmp=$2*512; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
Половину всей "MemTotal" отдаём под Shared Memory (при "MemTotal Kb"/4 была бы отдана вся память)
sed -ie 's/^kernel.shmall/#kernel.shmall/g' /etc/sysctl.conf
echo "kernel.shmall = $(awk '$1 == "MemTotal:"{tmp=$2/8; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
ora soft memlock = "MemTotal Kb" * 0.901
echo "ora soft memlock $(awk '$1 == "MemTotal:"{tmp=$2*0.901; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/security/limits.conf
ora hard memlock = "MemTotal Kb" * 0.901
echo "ora hard memlock $(awk '$1 == "MemTotal:"{tmp=$2*0.901; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/security/limits.conf
Пример:
cat << EOF >> /etc/security/limits.conf
ora soft nofile 65536
ora hard nofile 65536
ora hard nproc 65536
ora soft nproc 65536
EOF
echo "ora soft memlock $(awk '$1 == "MemTotal:"{tmp=$2/2; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "ora hard memlock $(awk '$1 == "MemTotal:"{tmp=$2/2; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/security/limits.d/99-grid-oracle-limits.conf
cat << EOF >> /etc/sysctl.conf
kernel.sem = 250 32000 100 1024
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.panic_on_oops = 1
EOF
sed -ie 's/^kernel.shmmax/#kernel.shmmax/g' /etc/sysctl.conf
sed -ie 's/^kernel.shmall/#kernel.shmall/g' /etc/sysctl.conf
echo "kernel.shmall = $(awk '$1 == "MemTotal:"{tmp=$2/8; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
echo "vm.nr_hugepages = $(awk '$1 == "MemTotal:"{tmp=$2/4096; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
echo "kernel.shmmax = $(awk '$1 == "MemTotal:"{tmp=$2*512; printf"%0.0f\n", tmp}' /proc/meminfo)" >> /etc/sysctl.conf
yum -y install libXp libaio-devel sysstat unixODBC unixODBC-devel gcc elfutils glibc-devel glibc-headers gcc-c++ kernel-headers libstdc++-devel elfutils-libs elfutils-libelf-devel xorg-x11-utils ksh compat-libcap1 compat-libstdc++-33 tuned unzip
chkconfig tuned on
service tuned start
Настройка sshd_config на Linux:
Установить необходимые пакеты:
yum install nc
yum install xauth
yum install xclock
yum install xorg-x11-fonts*
yum search fuser
yum install psmisc
yum list elfutils-libelf-devel
yum install elfutils-libelf-devel
yum search screen
yum install screen.x86_64
vi /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
/bin/systemctl status sshd.service
/bin/systemctl restart sshd.service
Настройка sshd_config на AIX
# vi /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
# stopsrc -s sshd; sleep 2; startsrc -s sshd
Crontab
Запись crontab- файла в общем случае состоит из семи полей:
минуты часы день месяц день_недели имя_пользователя команда
Допустимые значения временных параметров:
Параметр | Допустимый интервал |
минуты | 0-59 |
часы | 0-23 |
день месяца | 1-31 |
месяц | 1-12 |
день недели | 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс) |
- * — любая цифра;
- целое число;
- целые числа через запятую — задание дискретного множества значений, например 1,2,5;
- два целых числа, разделенные дефисом, соответствующие диапазону значений, например 3-6.
Каждую минуту:
* * * * *
Каждый час, с использованием переменных cron:
@hourly ~/script.sh
Каждый день в 03:15 запускать скрипт:
15 3 * * * ~/script.sh
Каждый понедельник:
0 0 * * 1
Каждый четный час:
* */2 * * *
Тоже что и выше, но расписанное полностью:
* 0,2,4,6,8,10,12,14,16,18,20,22 * * *
Каждые 10 минут:
*/10 * * * *
Новый год
59 23 31 dec *
Каждый будний день в 22:00:
0 22 * * 1-5
каждый час в 15 минут;
15 * * * *
каждую минуту, между 00:00 и 00:59.
* 0 * * *
Запуск программы с графической оболочкой (GUI); каждую минуту будет отображаться сообщение с текстом:
0-59 * * * * DISPLAY=:0 gdialog --msgbox "Hello World\!" 25 20 > /dev/null
Запуск скрипта каждый понедельник в 9:00 и 18:00 часов:
0 9,18 * * 1 /home/angor/script.sh
Запуск скрипта каждый день в 0:30 и 12:30:
30 */12 * * * script.sh
Запуск команды каждый месяц 1 числа в 12:00:
0 12 1 * * command
Запуск скрипта в полночь с понедельника по пятницу:
0 0 * * 1-5 /home/angor/script.sh
# выполнять скрипт backupscript каждые 5 минут
*/5 * * * * /root/backupscript.sh
# выполнять скрипт backupscript каждый день в час ночи
0 1 * * * /root/backupscript.sh
# выполнять скрипт каждый месяц первого числа в три часа ночи пятнадцать минут
15 3 1 * * /root/backupscript.sh
# Выполнять задание в 18 часов 7 минут 13 мая если это пятница
7 18 13 5 5 /home/angor/myscript.sh
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/angor/myscript.pl
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/angor/myscript.sh
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/angor/myscript.pl
# Пример запуска скрипта python каждую минуту:
* * * * * export DISPLAY=:0 && /usr/bin/python /home/angor/script.py
#Или так:
* * * * * export DISPLAY=:0 && cd /home/angor && ./script.py
# Пример запуска скрипта php в 5 утра каждый день:
0 5 * * * /usr/bin/php -q /home/angor/script.php
Пример для тестовой базы:
# Reserv Crontab to text file:
0 03 * * * crontab -l > ${HOME}/bin/crontab_oracle.lst
# Checking filesystem usage:
30 08 * * * ${HOME}/bin/pkg/monitor_fs/_run.sh 80 Warning > /dev/null 2>> /tmp/crontab_oracle.err
09,39 * * * * ${HOME}/bin/pkg/monitor_fs/_run.sh 90 Error > /dev/null 2>> /tmp/crontab_oracle.err
# Rman Backups:
00 20 * * * ${HOME}/bin/pkg/rman_backup/_run.sh testdb > /dev/null 2>> /tmp/crontab_oracle.err
# ADRCI purge
30 06 * * 0 ${HOME}/bin/pkg/adrci_purge/_run.sh > /dev/null 2>> /tmp/crontab_oracle.err
# Clean system audit
06 04 * * * ${HOME}/bin/pkg/clean_sys_audit/_run.sh 7 > /dev/null 2>> /tmp/crontab_oracle.err
# MAINTANANCE_STATISTICS:
00 06 * * 0 ${HOME}/bin/pkg/gather_statistics/_run.sh testdb > /dev/null 2>> /tmp/crontab_oracle.err
Продолжительность выполнения скрипта:
start_secs=$(/usr/xpg4/bin/awk 'BEGIN{srand();print srand()}')
begin_backup="`date +%Y.%m.%d" "%H:%M:%S`"
sqlplus '/ as sysdba' << EOF > /dev/null
alter database backup controlfile to trace as '$RMAN_BKP/$ORACLE_SID/ctrl_trace_${ORACLE_SID}' reuse;
create pfile='$RMAN_BKP/$ORACLE_SID/init${ORACLE_SID}.bkp' from spfile;
exit;
EOF
cp -pr ${orapwd_filename} $RMAN_BKP/$ORACLE_SID/orapw${ORACLE_SID}
$UTL_RMAN target / catalog 'rman/pass@catdb' cmdfile ${rman_cmdfile} log=${log_file}
###$UTL_RMAN target / cmdfile ${rman_cmdfile} log=${log_file}
finish_secs=$(/usr/xpg4/bin/awk 'BEGIN{srand();print srand()}')
end_backup="`date +%Y.%m.%d" "%H:%M:%S`"
let diff_secs=($finish_secs - $start_secs)
let days=$diff_secs/86400
let remainder=$diff_secs%86400
let hours=$remainder/3600
let remainder=$remainder%3600
let minutes=$remainder/60
let seconds=$remainder%60
size=$(du -sh /u09/backups/oradb/rman/${ORACLE_SID}/oradata/ | awk '{print $1}')
echo "Begin backup: $begin_backup" >> ${log_file}
echo "End backup: $end_backup" >> ${log_file}
echo "Duration: Days = $days, Hours = $hours, Minutes = $minutes, Seconds = $seconds" >>${log_file}
echo "Size: $size" >>${log_file}
Комментариев нет:
Отправить комментарий