`gK ddlZddlZddlZddlZddlZddlZddlZddlZddlZ ddl m Z ddl m Z ddlmZddlmZddlmZmZddlZddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2dZ3ej4Z5e5rej67e3 dd l8m9Z9m:Z:m;Z;mZ>m?Z?n#e@$rdZ9dZ:dZ;dZdZ?YnwxYwied ed ed e d e!de%de9de:de;dede?de)de-de.de/de0de1de&de2diZAdZBd ZCd!ZDd"ZEd#ZFd$ZGd%ZHeEfd&eId'ed(dfd)ZJd*ZKeEd+fd,ZLd-ZMd.ZNeOd/kr eNdSdS)0N)message_from_string)MIMEText)AnyStr)is_root_or_exit) MailHelperMailSendFailed)runnerfake_cagefs_checker check_cp_diagcheck_symlinksifowner check_suexec check_suphp check_use_pamcheck_symlinkowngid%check_existence_of_all_users_packages!check_da_resellers_packages_filescheck_phpselectorcheck_php_confcheck_defaults_cfgcheck_lve_limits!check_cagefs_partition_disk_quotais_email_notification_enabledcheck_domains_compatibility check_hidepid"get_list_of_disabled_cron_checkers"set_list_of_disabled_cron_checkerscron_cldiag_checkers_param_namecheck_jwt_tokencheck_cl_plus_sender_servicecheck_node_exporter_servicecheck_cmt_packagescheck_lvestats_servicecheck_low_pmem_limitsz/usr/share/cagefs) check_cagefs_mount_points_exists check_cagefs_enabled_users_isdir!check_cagefs_disabled_users_isdir"check_cagefs_disabled_etcfs_existscheck_users_can_enter_cagefs)check_proxy_commands_configs_are_parsablecheck_all_virt_mp_files_syntaxzcheck-symlinksifowner check-usepamcheck-symlinkowngidcheck-cpanel-packagescheck-da-packages-listscheck-lve-limitszcheck-cagefs-mount-points-existz!check-cagefs-enabled-users-is-dirz"check-cagefs-disabled-users-is-dirz#check-cagefs-disabled-etc-fs-existszcheck-users-can-enter-cagefsz)check-proxy-commands-configs-are-parsablezcheck-all-virtmp-files-syntax check-hidepidcheck-jwt-tokenzcheck-cl-plus-sender-servicezcheck-node-exporter-servicezcheck-cmt-packageszcheck-lvestats-servicerr# run_by_croncagefscmtallaeSubject: Your CloudLinux Server has issues: [{host}] - {date} From: noreply@{host} To: {to}

We have detected several CloudLinux configuration issues on your system.

  • You may ignore some or all issues if you know that they don't cause you any troubles or they are expected or already scheduled to be fixed
  • You may contact CloudLinux support to help to resolve issues that are hard to resolve yourself
  • You may disable this cron checks permanently See docs for steps

See report below.

{content}
    
c@tdtdtdtdtdtdtdtdtd td td td td tdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtddttd td!dS)"Nz;-h | --help shows this messagez>--json prints output as jsonz8-a | --all prints all diagzc --diag-cp prints control panel and its version (CP_NAME, CP_VERSION)zY --doctor runs the cldoctor script and displays its outputz[ --symlinksifowner prints fs.enforce_symlinksifowner from sysctl confzX --check-cm-all runs all of checkers for Centralized MonitoringzS --check-jwt-token prints warnings if JWT token has any errorzW --check-suexec prints warning if suexec binary without CageFSzV --check-suphp prints warning if suphp binary without CageFSza --check-usepam prints warnings if SSHd UsePAM from /etc/ssh/sshd_configzz --check-phpselector prints warnings if current PHP engine is not supported by CloudLinux PHP Selectorz] --check-multi-php prints warnings if current system version is alt-phpzV --check-domains-compatibility prints warnings if domains are not compatiblezk --check-cagefs runs same checks as cagefsctl --sanity-check and print it's resultzw --check-symlinkowngid prints warning if Apache user is not protected with fs.enforce_symlinksifownerzy --check-cpanel-packages prints packages from /var/cpanel/users that do not exist in /var/cpanel/packageszn --check-da-packages-lists check packages files encoding from /usr/local/directadmin/data/users/zf --check-php-conf prints warnings if /etc/cl.selector/php.conf has wrong formatzj --check-defaults-cfg prints warnings if /etc/cl.selector/defaults.cfg has wrong formatz` --check-lve-limits prints warnings if lve limits isn't valid on the serverzg --check-hidepid prints warning if hidepid protection is disabled on the serverzw --check-cagefs-quota prints warning if /var/cagefs is located on partition with disk quota disabledzR --check-low-pmem-limits prints warning if low PMEM limits presentzz --generate-email will run most of the checks, generate HTML report and send it via email to admin.z Default recipient email is root@localhost.localdomain (Can be affected by mail server settings).z To change default email add/edit control panel getemail script from /etc/sysconfig/cloudlinux.z --cron-check Do the same as --generate-email but taking into account /etc/sysconfig/cloudlinux ENABLE_CLDIAG settingz| --disable-cron-checkers [c1,c2] You can disable a few cron checkers passing on list of checkers separated by comma.zG Full list of cron checkers: {}, z_ If you want to enable all checkers - call without args)printformatjoin cron_checkersvaluesM/srv/buildsys-work-dir/castor/build_node/builder-2/7II39/unpkd_srcs/py/cldiag print_usagerAsx GHHH JKKK DEEE oppp efff ghhh deee _``` cddd bccc mnnn GHHH ijjj bccc wxxx DEEE FGGG z{{{ rsss vwww mnnn sttt DEEE ^___ GHHH WXXX UVVV ]^^^ IJJJ S Z Z[_[d[dereyeye{e{[|[| } }~~~ klll "IIIIIr?c@tfd|D}|S)z@ Remove from list checkers which was disabled by client c&g|] }|jv |Sr>) public_name).0checkerdisabled_checkerss r@ z)_filter_checkers_list..s4IIIG".6GGG GGGr?)r)checkersenabled_checkersrGs @r@_filter_checkers_listrKsF ;<<IIIIxIII r? cron_modescopereturnct||}|rt|}t|d\}}|sdSt}tt jtj tj d |ttj}t!|}t#|d}|d|d<|d |d <|d |d < ||d |d | dS#t($r/} d | z} |t*kr| d z } t-| Yd} ~ dSd} ~ wwxYw)z Run checkers that are present in given scope. Also send email to servers administrator if some of checkers fail. :param cron_mode: True - started by cron, False - started manually :param scope: the param defines set of checkers rMrLF)do_exitNr8)hostdatetocontent cldiag_param cl_confightmlSubjectFromTo)msgzcldiag is unable to send email notification about server issues; the error is '%s' Check your mail server settings or contact CloudLinux support for helpze Also you can disable automatic notifications. See https://docs.cloudlinux.com/cldiag.html for steps.)prepare_checkersrKr r EMAIL_TPLr:socket gethostnamedatetimerStodaydetectgetCPAdminEmailr;rCL_CONFIG_FILErr get_payloadsendmailrRUN_BY_CRON_SCOPEr9) rLrMrIerrorsoutput mail_helpermessageheadersr\e error_msgs r@check_and_send_notificationrps eyAAAH3(22He444NFF ,,K   ! ! ] " "  ! # #4' G"'**G 7&&((& 1 1CY'C N&/CK CI S[#d)===== 2566  % % % N NI is$E E; $E66E;c4|D]}t||_dS)zG Write additional field with public name to each cron checker. N)r<rD)rIrFs r@!_add_public_name_to_cron_checkersrrs-55+G455r?FcXttttf}||vrt dt t tttf}ttttttt t"t$t&t(t*t,t.t0f}t2f}tttt t"t*t,t.t0g |R}t4r, ddlm}t;|}n#t<$rYnwxYw||z}|tkr|S|tkr t4r|S|tkrPt4r6 ddlm|t;fd|Dz }n#t<$rYnwxYw|rtA||S|tkr|SgS)NzUnknown checkers scoper)CAGEFS_CHECKERScheck_multiphp_system_defaultc3(K|] }|k|V dS)Nr>)rErFrvs r@ z#prepare_checkers..@s;.. '"???????..r?)! ALL_SCOPE CAGEFS_SCOPErh CMT_SCOPE ValueErrorrrr r!r"r r r rrrrrrrrrrrr#r CAGEFS_INSTALLED sanity_checkrttuple ImportErrorrvrr) rMrL all_scopes cmt_checkers all_checkerscagefs_checkerscheckers_run_by_cronrtrvs @r@r]r]s J J1222 $# L -))L& O -))    6  4 4 4 4 4 4#O44OO    D #o5   !1 !!!   %....+:...))$$       D -.B C C C##  Is$6D DD$E:: FFc d}tjdd}td|tj||tjd|gdddd tj |d S) z Downloads the cldoctor script from the fixed URL to a temp file and runs it. Prints the output. :raises CalledProcessError: When the script returns a non-zero return code. z;https://repo.cloudlinux.com/cloudlinux/cldoctor/cldoctor.shz/root/ztmp_cldoctor.shz!Downloading cldoctor script from z /bin/bashFTz/root)shelltextcheckcwdN) ospathr;r9urllibrequest urlretrieve subprocessrunremove) doctor_urldoctor_filenames r@ run_cldoctorrOsPJgll8->??O :j : :;;; Nz?;;;NK1TQU[bccccIor?c  t tjtjdddgd\}}nF#tj$r4t dt tjdYnwxYwd}d}d|vrd}g}|D]b\}}|dvrd}t |d vr2d}tt }|D]}| |Q|d vr!d}t}t||v|d vr| t|d vr| t|dvr| t|dvr| t|dvr| t |dvrd}t#t$d0|dvrUt&st dtdtt(}|D]}| ||dvr| t*|dvr| t,|dvr(d}t/rt#dt0|dvr| t2|dvr&d}t&rddlm} | | ?|dvr| t8_|dvr| t:|dvr| t<|d vr| t>|d!vr| t@|d"vr| tB|d#vr|rEd$tE|d#$d%D} ng} | D]}|tKtL'vrbt d&|t d'd((tL'tjdtS| d}|d)vr| tT|d*vr| tV.|d+vr| tXN|d,vrd}t[d|s|rd}t|||s3t d-t tjddSdS).Nha)helpr5zdiag-cpsymlinksifownerz check-suexecz check-suphpr+zgenerate-emailz cron-checkz check-cagefsr,r-r.zcheck-phpselectorzcheck-multi-phpzcheck-domains-compatibilityr0zcheck-cagefs-quotazcheck-low-pmem-limitsjsonzcheck-php-confzcheck-defaults-cfgr/z)add-comment-to-config-about-cron-checkerszdisable-cron-checkersz check-cm-allr1doctorzerror: unknown commandF)z--jsonr8T)z--helpz-h)z--check-cm-all)rM)z--allz-a)z --diag-cp)z--symlinksifowner)z--check-suexec)z --check-suphp)z--check-usepam)z--generate-emailrP)z--check-cagefsz'Cagefs is not installed. Skipping checkr)z--check-low-pmem-limits)z--check-symlinkowngid)z --cron-check)rLrM)z--check-phpselector)z--check-multi-phpru)z--check-domains-compatibility)z--check-cpanel-packages)z--check-da-packages-lists)z--check-php-conf)z--check-defaults-cfg)z--check-lve-limits)z--disable-cron-checkersc6g|]}|Sr>)strip)rEitems r@rHzmain..s2*K*K*K4$**,,*K*K*Kr?,z"error: wrong name of the checker: z Full list of existing checkers: r7)z--check-hidepid)z--check-jwt-token)z--check-cagefs-quota)z--doctorzerror: argument required).rgetoptsysargv GetoptErrorr9rAexitr]r{appendr r r r rrrpryr}rzr#rrrhrr~rvrrrrrrstrrsplitlistr<r=r;rrrrr) optsargsexecutedto_jsonscheduled_checkersoarIrFrvdisabled_cron_checkerss r@mainrcs[#]38ABB<8 8 8   dd>   &'''    HGjj1  H MMMM $ $ $H'i888H# 3 3"))'2222 3/ ! !H'))H 8W % % % % / ! !  % %m 4 4 4 4 ) ) )  % %&; < < < < & & &  % %l 3 3 3 3 % % %  % %k 2 2 2 2 % % %  % %m 4 4 4 4 ( ( (H 'i5 I I I I I % % %# ?@@@Q' 55H# 3 3"))'2222 3. . .  % %&; < < < < , , ,  % %&9 : : : : # # #H,.. E+d2CEEEE* * *  % %&7 8 8 8 8 ( ( (H IFFFFFF"))*GHHH 4 4 4  % %&A B B B B . . .  % %&K L L L L 0 0 0  % %&G H H H H ' ' '  % %n 5 5 5 5 + + +  % %&8 9 9 9 9 ) ) )  % %&6 7 7 7 7 . . . ,*K*K*-d1g,,*<*<*>*>*D*DS*I*I*K*K*K&&*,&1  $}';';'='=">">>>HwHHIIIA!YY}';';'='=>>AABBBHQKKK ./E F F FHH & & &  % %m 4 4 4 4 ( ( (  % %o 6 6 6 6 + + +  % %&G H H H H -  H NNN,W,!7+++  ()))   s->ABB__main__)Prarr_rrstattempfilerurllib.requestremailremail.mime.textrtypingrclcommon.utilsrclcommon.mail_helperrr cldetectlibrc cldiaglibr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#CAGEFS_SOURCESis_cagefs_installedr}rrr~r$r%r&r'r(r)r*rr<rhrzr{ryr^rArKboolrprrr]rr__name__r>r?r@rs %%%%%%$$$$$$******;;;;;;;;<%-6-//$HOON###****'+$'+$(,%)-&#' 04-%)"""*2>.*+B  &'@  ( %&G%&I&'K'(M!"@./Z#$C?& !"@!" !>#$,4%'J2+ 2"     B   F/8))4)'-)<@))))X555%TTTTn(bbbJ zDFFFFFs1CCC