මට නිතිපතා ක්රියාත්මක කිරීම සඳහා කාර්යයක් උපලේඛනගත කිරීමට අවශ්ය වන අතර ක්රෝන් මෙය කළ හැකි බව අසා ඇත.
උබුන්ටු වල ක්රොන් රැකියා එකතු කරන්නේ කෙසේද?
මට නිතිපතා ක්රියාත්මක කිරීම සඳහා කාර්යයක් උපලේඛනගත කිරීමට අවශ්ය වන අතර ක්රෝන් මෙය කළ හැකි බව අසා ඇත.
උබුන්ටු වල ක්රොන් රැකියා එකතු කරන්නේ කෙසේද?
Answers:
මෙම ෆෝල්ඩර එකක් තුළ ශෙලයක් තිර රචනය දාන්න: /etc/cron.daily
, /etc/cron.hourly
, /etc/cron.monthly
හෝ /etc/cron.weekly
.
මේවා ඔබට ප්රමාණවත් නොවේ නම්, ඔබට වඩාත් නිශ්චිත කාර්යයන් එක් කළ හැකිය. උදා: මසකට දෙවරක් හෝ සෑම විනාඩි 5 කට වරක්. පර්යන්තය වෙත ගොස් ටයිප් කරන්න:
crontab -e
මෙය ඔබගේ පුද්ගලික ක්රොන්ටාබ් (ක්රෝන් වින්යාස ගොනුව) විවෘත කරනු ඇත. එම ගොනුවේ පළමු පේළිය ඒ සියල්ල පැහැදිලි කරයි! සෑම පේළියකම ඔබට ක්රියාත්මක කිරීමට එක් විධානයක් සහ එහි කාලසටහන නිර්වචනය කළ හැකි අතර, ඔබ එය ක්රියාත්මක වන විට ආකෘතිය තරමක් සරල ය. ව්යුහය:
minute hour day-of-month month day-of-week command
ඔබට ලැයිස්තු භාවිතා කළ හැකි සියලුම සංඛ්යා සඳහා, උදා: 5,34,55
මිනිත්තු ක්ෂේත්රය යන්නෙන් අර්ථ දැක්වෙන්නේ අතීත 5, 34, සහ 55 පසුකර ධාවනය වන වේලාවයි.
ඔබට අන්තරයන් ද භාවිතා කළ හැකිය. ඒවා මේ ආකාරයට අර්ථ දක්වා ඇත : */20
. මෙම උදාහරණයෙන් සෑම 20 වන දිනම අදහස් වේ, එබැවින් මිනිත්තු තීරුවේ එය සමාන වේ 0,20,40
.
එබැවින් සෑම සඳුදා දිනකම සවස 5:30 ට විධානයක් ක්රියාත්මක කිරීමට:
30 17 * * 1 /path/to/command
හෝ සෑම විනාඩි 15 කට වරක්
*/15 * * * * /path/to/command
සතියේ දිනය 0-6 සිට 0 ඉරිදා දක්වා යන බව සලකන්න.
*/15 * * * * /path/to/command
, @reboot /path/to/command
ආරම්භයේදී යමක් ක්රියාත්මක කිරීම වෙනුවට ඔබට කළ හැකි බවයි.
ඔබට ක්රියාත්මක කිරීමට අවශ්ය රැකියාව ඔබේ පරිශීලකයාට සමාන වරප්රසාද සහිතව ධාවනය කළ හැකි නම්, ධාවනය කිරීමෙන් ඔබට සංස්කරණය කළ හැකි පරිශීලක ක්රොන්ටැබ් එකක් භාවිතා කිරීමට මම නිර්දේශ කරමි EDITOR="gedit" crontab -e
(එය ක්රොන්ටාබ් ගොනුව සංස්කරණය කිරීමට gedit භාවිතා කරයි) හෝ සරලව crontab -e
(පෙරනිමි සංස්කාරකය භාවිතා කරනු ඇත) පර්යන්තයක.
ඔබට සෑම මිනිත්තු 10 කට වරක් යමක් ධාවනය කිරීමට අවශ්ය නම්, උදාහරණයක් ලෙස, ඔබ මේ වගේ පේළියක් එක් කරයි
*/10 * * * * /usr/bin/somedirectory/somecommand
ගොනුව සුරකින්න.
පරිශීලක crontab හි අන්තර්ගතය ඔබට දැක ගත හැකිය crontab -l
.
Root ලෙස ක්රියාත්මක වන ක්රෝන් ජොබ් එකක් එක් කිරීමට, ඔබට ධාවනය කිරීමෙන් root හි crontab සංස්කරණය කළ හැකිය sudo crontab -e
.
වඩාත්ම නම්යශීලී ක්රමය නම් /etc/crontab
ඔබට සංස්කරණය කළ හැකි පද්ධති වර්ග භාවිතා කිරීම මූල වරප්රසාද සමඟ පමණි. මෙම ගොනුවේ, පරිශීලකයා සෑම විධානයක්ම නියම කර ඇති පරිදි ක්රියාත්මක කළ යුතුය, එවිට ඔබට ඔබේ විධාන root ලෙස ක්රියාත්මක කළ හැකිය (ඔබට එම වරප්රසාදය අවශ්ය නම්) හෝ පද්ධතියේ වෙනත් ඕනෑම පරිශීලකයෙක්.
උදාහරණයක් ලෙස, ඔබට සෑම විනාඩි 10 කට වරක් root ලෙස යමක් ධාවනය කිරීමට අවශ්ය නම්, ඔබ මේ වගේ පේළියක් එක් කරයි
*/10 * * * * root /usr/bin/somedirectory/somecommand
(පරිශීලකයා පේළියට එකතු කිරීම සැලකිල්ලට ගන්න)
පද්ධති ක්රොන්ටාබ් ගොනුවේ අන්තර්ගතය ඔබට දැක ගත හැකිය cat /etc/crontab
.
වැඩි විස්තර: https://help.ubuntu.com/community/CronHowto
ඔබ එය GUI භාවිතයෙන් කිරීමට කැමති නම්, ඔබට මෘදුකාංග මධ්යස්ථානය වෙත ගොස් උපලේඛනගත කාර්යයන් ස්ථාපනය කළ හැකිය (හෝ ක්රියාත්මක කරන්න sudo apt-get install gnome-schedule
). එය ක්රෝන් කාර්යයන් එකතු කිරීම සඳහා ප්රබල GUI එකක් ලබා දෙනු ඇත.
ඔබ මෙම ක්රමය භාවිතා කරන්නේ නම්, පෙරනිමියෙන් කාර්යයන් ක්රියාත්මක කරනු ලබන්නේ ඔබේම පරිශීලකයෙකු ලෙස මිස මූල ලෙස නොවේ. මෙය සාමාන්යයෙන් හොඳ දෙයකි.
KDE හි කාර්ය කාලසටහන ( kde-config-cron
) නිර්දේශ කරමි . එහි කාර්ය උපලේඛන මොඩියුලයේ පද්ධති සැකසීම් වලින් එය ප්රවේශ කරන්න.
එය පුද්ගලික හා පද්ධති ක්රොන්ටාබ් යන දෙකම කළමනාකරණය කරයි, සහ කාල සීමාවන් නිර්මාණය කිරීමේ පහසුව මා බෙහෙවින් පුදුමයට පත් කළේය (පහත රූපරාමුව බලන්න). මම හිතන්නේ මෙම කොටස සැබවින්ම අවතක්සේරු කර ඇත.
කේඩීඊ කාර්ය උපලේඛකයා සාමාන්ය උබුන්ටු වල ක්රියා නොකරනු ඇත. එය ක්රියාත්මක වන්නේ කුබුන්ටු වැනි කේඩීඊ පද්ධතිවල පමණි. KDE නොවන පද්ධතිය සඳහා ඔබ gnome- කාලසටහන භාවිතා කිරීමට කැමති වනු ඇත
$ sudo apt-get install gnome-schedule
යෙදුම ඩෑෂ් හි උපලේඛනගත කාර්යයන් වේ.
I can't install gnome schedule on Ubuntu 16.04
@ askubuntu.com/questions/785657/… බලන්න . Download bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… බාගත කිරීම සඳහා පැකේජයක් තිබේ . ඉටු කරන්න$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
මට අවශ්ය වූයේ ක්රෑෂ් ජොබ් එකක් බාෂ් ස්ක්රිප්ට් එකක් හරහා ධාවනය කිරීමටයි, එබැවින් ස්ක්රිප්ට් ක්රියාත්මක කිරීමෙන් ක්රෝන් ජොබ් එකක් එකතු වේ.
ඔබ එය භාවිතා කරන විට:
crontab -e
ඉන්පසු එය ගොනුව නිර්මාණය කරයි:
/var/spool/cron/crontabs/root
Root යනු crontab විධානය ක්රියාත්මක කරන පරිශීලකයාගේ නමයි. එබැවින් මේ මත පදනම්ව සහ අවම වශයෙන් 14.04 දී අපට නව ක්රෝන් රැකියාවක් නිර්මාණය කිරීම සඳහා පහත දැක්වෙන bash විධානයන් ක්රියාත්මක කළ හැකිය:
echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root
ගොනුව සඳහා නිවැරදි හිමිකම අප විසින් සැකසිය යුතුය:
chown root:root /var/spool/cron/crontabs/root
නිවැරදි අවසරයන් සකසන්න:
chmod 600 /var/spool/cron/crontabs/root
ඔබ ධාවනය crontab -e
කරන විට ලැයිස්තුවේ දැනටමත් ක්රෝන් රැකියා තිබේ නම්, පහත දැක්වෙන විධානය භාවිතා කර ඔබට ලැයිස්තුවට එකතු විය හැකිය:
echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
test_cron.sh
සංකේතාත්මක සබැඳියක් භාවිතා කරමින් උබුන්ටු 18.04 හි සෑම මිනිත්තුවකම ක්රෝන් මඟින් ස්ක්රිප්ට් ධාවනය කිරීමේ උදාහරණය :
test_cron.sh
ගොනුව:
#!/bin/bash
echo "System backuped" >> /media/myname/data/backup/backup_tmp.log
$USER
මාර්ගවල මෙන් ඔබේ ස්ක්රිප්ටයේ පරිසර විචල්යයන් භාවිතා කිරීමට ඔබට අවශ්ය නම් , නිවැරදි මාර්ගය ටයිප් කිරීම වඩා හොඳය, ක්රියාත්මක කරන වේලාවේදී ඔබේ විචල්යයන් බාෂ් නොදැන සිටියි.
myname
පරිශීලක නාමය (මූල කණ්ඩායමේ කොටසක්, මූල වරප්රසාද අවශ්ය බව මට විශ්වාස නැත).
ක්රෝන් රැකියා සැකසීමට පරිශීලකයින්ට ඉඩ දෙන්න, අවශ්ය නම් ගොනුව සාදනු ලැබේ:
sudo nano /etc/cron.allow
root
myname
ස්ක්රිප්ටයට යන මාර්ගයයි /home/myname/shell/test_cron.sh
මම අයිතිකරු වෙනස් කර එය ක්රියාත්මක කළ හැකි විය:
sudo chown myname /home/myname/shell/test_cron.sh
chmod +x /home/myname/shell/test_cron.sh
මම සංකේතාත්මක සබැඳියක් එක් කළෙමි:
sudo ln -s /home/myname/shell/test_cron.sh /usr/bin/test_cron
සෑම මිනිත්තුවක්ම myname
ක්රියාත්මක කිරීම සඳහා මම නව කාර්යයක් එක් කළ බැවින් ලොග් විය test_cron
.
crontab -e
*/1 * * * * test_cron
ලැයිස්තුවේ ඇති විධානය තිබේදැයි පරීක්ෂා කිරීමට:
crontab -l
*/1 * * * * test_cron
ක්රියාත්මක කිරීම පරීක්ෂා කිරීම සඳහා
grep -i cron /var/log/syslog
Nov 17 12:28:01 myname-ubuntu CRON[13947]: (myname) CMD (system-backup)
විශේෂිත පරිශීලකයා සමඟ ඔබට බහු ක්රෝන් රැකියා ඇති බවත් ඔවුන් එකම කාලසටහනක් බෙදා නොගන්නා බවත් සලකන විට . ඔබට සරල ලෙස ගොනුවක් සෑදිය හැකිය /etc/cron.d/
ලිපිගොනු නම myjobs
පසුව ඔබේ සියලු උපලේඛන එම ගොනුවේ ලියා ඉන්පසු පහත විධානය ක්රියාත්මක කරන්න.
crontab -u <username> /etc/cron.d/myjobs