User Tools

Site Tools


планирование_выполнения_заданий_в_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
планирование_выполнения_заданий_в_linux [2013/05/22 13:50]
127.0.0.1 внешнее изменение
планирование_выполнения_заданий_в_linux [2026/04/02 11:52] (current)
val
Line 3: Line 3:
 ===== Примеры периодических задач ===== ===== Примеры периодических задач =====
  
-==== Ротация файлов регистрации ​(logrotate) ==== +  * [[Сервис ​ротации ​журналов]] 
- +  ​[[Управление ​ПО в Linux]] втоматическое обновление) 
-=== Глобальная настройка logrotate === +  ​* ​[[Резервное копирование]]
-<​code>​ +
-# cat /​etc/​logrotate.conf +
-... +
-include /​etc/​logrotate.d +
-... +
-</​code>​ +
- +
-=== Настройка logrotate для сервиса clamd по умолчанию === +
-<​code>​ +
-# cat /​etc/​logrotate.d/​clamav-daemon +
-</​code><​code>​ +
-/​var/​log/​clamav/​clamav.log { +
-     ​rotate 12 +
-     ​weekly +
-     ​compress +
-     ​delaycompress +
-     ​create 640 clamav adm +
-     ​postrotate +
-     /​etc/​init.d/​clamav-daemon reload-log > /dev/null +
-     ​endscript +
-     }  +
-</​code><​code>​ +
-# cat /​etc/​init.d/​clamav-daemon +
-</​code><​code>​ +
-     ... +
-. /​lib/​lsb/​init-functions +
-     ... +
-[ -n "​$THEPIDFILE" ​|| THEPIDFILE='/​var/​run/​clamav/​clamd.pid'​ +
-     ... +
-  ​CLAMDPID=`pidofproc -p $THEPIDFILE $DAEMON` +
-     ... +
-  reload-log) +
-  OPTIND=1 +
-  log_daemon_msg "​Reloading log file for $DESC" "​$NAME"​ +
-  if "​$RUNNING"​ = 0 ] && ​-n "​$CLAMDPID"​ ]; then +
-    kill -HUP $CLAMDPID +
-  fi +
-     ... +
-</​code>​ +
- +
-=== Настройка logrotate для для архивирования ​лог сообщений поступающих из сети === +
-<​code>​ +
-# cat /​etc/​logrotate.d/​cisco +
-</​code><​code>​ +
-/​var/​log/​cisco.log { +
-     ​rotate 5 +
-     size 100k +
-     ​compress +
-     ​create 640 syslog adm +
-     ​postrotate +
-       ​reload rsyslog >/​dev/​null 2>&1 || true +
-     ​endscript +
-+
-</​code><​code>​ +
-# cat cisco_log_gen.sh +
-</​code><​code>​ +
-while : +
-do +
-  logger -t cisco -p local0.info "​Message 1" +
-  logger -t cisco -p local0.info "​Message 2" +
-done +
-</​code><​code>​ +
-# sh cisco_log_gen.sh +
-... +
-<​Ctrl>​-C +
- +
-# tail -f /​var/​log/​cisco.log +
-... +
-<​Ctrl>​-C +
- +
-# logrotate /​etc/​logrotate.conf +
- +
-# ls -l /​var/​log/​cisco.log* +
-</​code>​ +
- +
-==== Обновление системы ==== +
- +
-[[https://​help.ubuntu.com/​community/​AutoWeeklyUpdateHowTo]] +
-==== Резервное копирование ​==== +
- +
-[[Резервное копирование]]+
 ===== Сервис cron ===== ===== Сервис cron =====
  
-[[http://​ru.wikipedia.org/​wiki/​Cron]]+  * [[https://​ru.wikipedia.org/​wiki/​Cron|cron - Материал из Википедии]] 
 +  * [[https://​stackoverflow.com/​questions/​9049460/​cron-jobs-and-random-times-within-given-hours|Cron jobs and random times, within given hours]]
  
-[[https://​help.ubuntu.com/​community/​CronHowto]]+  * [[Коды завершения#​Простая система мониторинга]] 
 +  * Сервис Git [[Сервис Git#​Пример с использованием cron]] 
 +  * Команда tar [[Команда tar#​Сценарий архивирования каталогов с использованием ssh]] 
 +  * [[Сервис Ansible#​ansible-pull]]
  
 <​code>​ <​code>​
-crontab -e+crontab -e
  
-crontab -l+crontab -l 
 +</​code><​code>​
 # m h  dom mon dow   ​command # m h  dom mon dow   ​command
-*/* * * * /root/backup_conf.sh+#5-59/10 * * * * /etc/backup.sh   # crontab from root
  
-crontab -r+*/5 * * * * test $(LANG= top -b -n 1 | grep Cpu | cut -d':'​ -f2 | cut -d. -f1) -gt 60 && ( date; ps awux ) >> /​tmp/​ps_cpu_hi.log 
 +</​code><​code>​ 
 +$ ls /​var/​spool/​cron/​ 
 + 
 +crontab -r
 </​code>​ </​code>​
  
 ===== Скрипт run-parts ===== ===== Скрипт run-parts =====
 <​code>​ <​code>​
-cat /​etc/​crontab+more /​etc/​crontab
 ... ...
  
 # !!!! Don't work with .sh !!!! # !!!! Don't work with .sh !!!!
-cp /root/backup_conf.sh /​etc/​cron.daily/​backupconf+mv /etc/mybackup.sh /​etc/​cron.daily/​mybackup
  
 # run-parts --report /​etc/​cron.daily # run-parts --report /​etc/​cron.daily
Line 115: Line 43:
  
 ===== Система anacron ===== ===== Система anacron =====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Anacron|асинхронный или анахроничный cron]]
 +
 <​code>​ <​code>​
 # cat /​etc/​crontab # cat /​etc/​crontab
  
-# apt-get install anacron+# apt install anacron
  
 # man anacrontab # man anacrontab
Line 129: Line 60:
 # ls /​var/​spool/​anacron # ls /​var/​spool/​anacron
 </​code>​ </​code>​
-===== Система atrun =====+ 
 +===== Systemd timers ​===== 
 + 
 +  * [[https://​habr.com/​ru/​companies/​ruvds/​articles/​512868/​|Использование таймеров systemd вместо заданий cron]] 
 +  * [[https://​wiki.archlinux.org/​title/​Systemd/​Timers]] 
 +  * [[Let'​s Encrypt для внутренних сайтов]] 
 <​code>​ <​code>​
-ls /​etc/​init/​atd.conf+systemctl list-timers
  
-echo "Hello from at `tty`" | at now + 3 minutes+cat /​etc/​systemd/​system/​mybackup.service 
 +</code><​code>​ 
 +[Unit] 
 +Description=My Backup 
 +After=network.target
  
-echo "​killall proftpd"​ | at now + 2 days+[Service] 
 +Type=oneshot 
 +ExecStart=/​etc/​mybackup.sh 
 +</​code><​code>​ 
 +systemctl start mybackup.service
  
-echo "Hello from at > `tty`" | at 18:40+systemd-analyze calendar ​"*-*-* 3:45:00"
  
-echo "rm –rf /*" | at 23:59 12/31/2015+cat /etc/systemd/system/​mybackup.timer 
 +</​code><​code>​ 
 +[Unit] 
 +Description=Timer for My Backup
  
-atq+[Timer] 
 +OnCalendar=*-*-* *:*:00 
 +#OnCalendar=*-*-* 03:45:00 
 +#​OnCalendar=Sat *-*-* 03:45:00 
 +#​OnCalendar=*-*-1 03:45:00 
 +#​Persistent=true
  
-# atrm 3+Unit=mybackup.service
  
-at -c 2 +[Install] 
-...+WantedBy=timers.target 
 +</​code><​code>​ 
 +systemctl daemon-reload 
 + 
 +# systemctl enable mybackup.timer --now 
 + 
 +# journalctl -u mybackup.timer 
 + 
 +# journalctl -u mybackup.service
 </​code>​ </​code>​
 +
 +
планирование_выполнения_заданий_в_linux.1369216248.txt.gz · Last modified: 2014/01/31 16:22 (external edit)