Задания крона по сути представляют значительную нагрузку в современной системе?

Я несколько раз прочитывал Ваши вопросы, прежде чем я понял, что у меня определенно есть рекомендация для Вас: энергия с tmux: http://tmux.sourceforge.net/

tmux является экраном 'мультиплексор', который позволяет Вам иметь несколько окон и областей 'в 1'

Это - преемник почтенной 'экранной' программы, долго главный продукт многих cli кодеров. Одной из его исходных функций победы по энергии была способность сделать окна с несколькими панелями вертикально, а также горизонтально. Однако экран продвинулся и может теперь сделать это также.

Пример:

enter image description here

Другая часть установки, которую я рекомендовал бы, является хорошим набором псевдонимов. Они сделают Ваш ввод и взаимодействие намного легче и более быстрыми

Часть моего избранного показывают здесь как примеры:

alias gcv='git commit'
alias gg='git grep ' # for searching (add parameter)
alias gst='git status -sb' # I must use this 100 times a day!!!
alias h='history | tail'
alias hg='history | grep' # for searching my history (add parameter)
alias l='ls -alFtrG'
alias ls='ls --color=auto'
alias mv='mv -i'
alias p='pwd'# at least 200 times a day! so 2 chrs saved * 200 = 400 less characters to type ;)

Псевдонимы могут быть установкой в .bash_aliases файле, который называют от .bashrc с: определения Псевдонима #. если [-f ~/.bash_aliases]; затем. ~/.bash_aliases fi

Возможности - Вы, уже имеют тот код, поэтому просто Ваш собственный .bash_aliases файл.

И эти опции работают над Mac, и это - важный фактор для меня (главным образом пользователь Ubuntu).

Большинство людей, использующих tmux, повторно отображает ключи для помощи. Привязка по умолчанию просто не настолько хороша. Вот мои настройки:

Кошка $ ~/tmux.conf

# mdd tmux settings
bind r source-file ~/.tmux.conf \; display "Reloaded!"  # Reload with ctrl-r
set -g prefix C-a         # prefix from ctrl-b to ctrl-a
unbind C-b                # allow ctrl-b for other things
set -sg escape-time 1     # quicker responses
bind C-a send-prefix      # Pass on ctrl-a for other apps
set -g base-index 1        # Numbering of windows
setw -g pane-base-index 1  # Numbering of Panes
# bind | split-window -h    # Split panes horizontal
bind \ split-window -h    # Split panes horizontal
bind - split-window -v    # Split panes vertically
bind h select-pane -L     # Switch to Pane Left
bind j select-pane -D     # Switch to Pane Down
bind k select-pane -U     # Switch to Pane Up
bind l select-pane -R     # Switch to Pane Right
bind -r C-h select-window -t :-  # Quick Pane Selection
bind -r C-l select-window -t :+  # Quick Pane Selection
bind -r H resize-pane -L 5       # Switch to Pane Left
bind -r J resize-pane -D 5       # Switch to Pane Down
bind -r K resize-pane -U 5       # Switch to Pane Up
bind -r L resize-pane -R 5       # Switch to Pane Right
setw -g mode-mouse off           # Mouse Off
set -g mouse-select-pane off     # Mouse Off  
set -g mouse-resize-pane off     # Mouse Off
set -g mouse-select-window off   # Mouse Off
#set -g  default-terminal "screen-256color"
setw -g monitor-activity on      # Activity Alerts
set -g visual-activity on
set -g status-fg white           # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan    # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white     # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green      # Pane colors
set -g pane-border-bg black 
set -g pane-active-border-fg white 
set -g pane-active-border-bg yellow
set -g message-fg white          # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40     # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on            # Status Line, right side
set -g status-right "-------"
set -g status-interval 60        # frequency of status line updates
set -g status-justify centre     # center window list
setw -g mode-keys vi             # vi keys to move 
unbind v                         # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up                        # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
# Make keys for copy mode be like vi
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection

Наконец (для замыкания круга) вот мои .vimrc настройки сами, что мне нравится иметь необходимость сделать оболочку легче использовать:

" mdd specific stuff --- start
set hlsearch
set incsearch
set number
" more3 mdd stuff - set tabs to be spaces and length of 2 characters.
set smartindent
set tabstop=2
set shiftwidth=2
set expandtab
" mdd specific stuff --- end
"
" Forget being compatible with good ol' vi
set nocompatible

" Get that filetype stuff happening
filetype on
filetype plugin on
filetype indent on

" Turn on that syntax highlighting
syntax on

" Why is this not a default
set hidden

" Don't update the display while executing macros
set lazyredraw

" At least let yourself know what mode you're in
set showmode

" Enable enhanced command-line completion. Presumes you have compiled
" with +wildmenu.  See :help 'wildmenu'
set wildmenu

" Let's make it easy to edit this file (mnemonic for the key sequence is
" 'e'dit 'v'imrc)
nmap  ,ev :e $MYVIMRC

" And to source this file as well (mnemonic for the key sequence is
" 's'ource 'v'imrc)
nmap  ,sv :so $MYVIMRC

highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@

Наконец я вношу несколько изменений в свой .bashrc файл, Например, с shopt -s autocd когда я ввожу имя каталога (который существует), мой CD оболочки в тот каталог сразу. Острота! Таким образом, вот мои изменения .bashrc:

# Automatic cd'ing
shopt -s autocd

# Have cd show directory info ('cos my shell doesn't show full directory path in $PS1 prompt (intended).
cd() {
      builtin cd "$@" && pwd 
  }

# enable programmable completion features
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # Load RVM into a shell session *as a function*

# mdd Terminal Multiplexor 6/15/2012
if [[ ! $TERM =~ screen ]]; then
    exec tmux
fi

[ -z "$TMUX" ] && export TERM=xterm-256color

export EDITOR=vim

git config --global --add color.ui true

3
03.11.2013, 20:04
4 ответа

Для ответа на вопрос в заголовке, нет, большая часть системы не испытывает большую часть нагрузки от рабочих заданий крона. Большая часть автоматизированных задач, которые происходят в современной системе Unix, начата заданиями крона.

Вещи, такие как вращение журналов и регенерация индексных файлов, используемых человеком, все начаты через задания крона.

Если Вам любопытно, смотрят в любом из каталогов под /etc/cron*. Там обязаны быть примерами там, которые прольют свет на то, как эти вещи выполняются в Вашей системе.

4
27.01.2020, 21:10
  • 1
    @TorThommesen - Вам рады, спасибо за Q. –  slm♦ 03.11.2013, 20:22

Сначала минимальное разрешение для крона составляет 1 минуту. Таким образом, каждые 15 секунд не собирается происходить. Если Вам действительно нужно каждые 15 секунд затем, необходимо заново продумать стратегию.

Затем, крон просто выполняет задачи в определенное время. Если задача будет интенсивно использующей ресурсы затем, то это будет в кроне также. Если это не будет затем, то это не будет. крон не добавляет (ПОЧТИ) издержек что поэтому когда-либо из-за пути это руки прочь от команды, которая будет выполнена.

Наконец выполняя задачу через крон каждая 1 минута довольно глупа. Anacron (который отбегает задачи крона журнала от того, когда Ваш компьютер снижается, или спящий) выполнит все задачи в последовательности, когда он будет думать, что он должен.

Вы будете намного лучше обслуживаться путем выполнения той задачи каждая 1 минута во время, которое должен разоблачить файл. Или даже однажды когда-либо 10 минут.

Нет никакой потребности выполнить времена задачи 1,440 только для ловли файла, который Вы знаете, только будет там один раз в день.

Если Ваша задача так очень важна, что она видит, что файл немедленно затем использует что-то еще. Иначе я советую замедлять частоту задачи к чему-то более настроенному на Ваши потребности.

Однако если Вы действительно захотите использовать крон для этого, то он не будет больше добавлять наверху затем просто, выполнение его через командную строку, но человека будет Ваш электронный ящик быть полным.

4
27.01.2020, 21:10

Корректный инструмент для использования в этом случае называют inotify. Это - часть ядра Linux, и его цель состоит в том, чтобы уведомить программы изменений в файловых системах. Это может быть настроено различными способами и почти наверняка подходит, для какого Вы пытаетесь сделать.

2
27.01.2020, 21:10
  • 1
    И конечно существует incron, который является подобным крону демоном, который использует inotify. –  derobert 04.11.2013, 18:11
  • 2
    я буду, вероятно, использовать это вместо этого. :) –   04.11.2013, 23:34

Часто порожденные процессы всегда являются риском ресурсов, жаждущих системы, но меры по мерам предосторожности (такие как пределы) могут быть помещены также.

P. S. В случае, если Вы действительно увлечены эффективностью для этой самой задачи, можно использовать подход inotify вместо этого.

0
27.01.2020, 21:10

Теги

Похожие вопросы