#!/usr/local/cpanel/3rdparty/bin/perl package scripts::export_horde_calendars_to_ics; # cpanel - scripts/export_horde_calendars_to_ics Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited use cPstrict; use parent qw{Cpanel::HelpfulScript}; use Clone (); use Cpanel::DAV::Principal (); use Cpanel::DAV::Backend::HordeCalendar (); use Cpanel::DAV::Backend::DB::Horde (); use Cpanel::Security::Authz (); use Cpanel::Slurper (); use Cpanel::Umask (); use Cwd (); use DateTime (); use MIME::Base64 (); use PHP::Serialization (); use Text::VCardFast (); use Whostmgr::Email (); use Cpanel::AccessIds::ReducedPrivileges (); use constant _OPTIONS => ( 'out=s', 'user=s@' ); my %skipped = map { $_ => 1 } qw{ alarm alarm_methods allday ar_id id start end baseid timezone recurcount recurdays recurenddate recurinterval recurtype resources exceptions }; # kronolith/lib/Kronolith.php has the constants that this map duplicates in # order to know what DB value corresponds to what status for certain fields. my %event_status_map = ( 0 => 'NEEDS-ACTION', 1 => 'TENTATIVE', 2 => 'CONFIRMED', 3 => 'CANCELLED', 4 => 'FREE', ); my %response_status_map = ( 1 => 'NEEDS-ACTION', 2 => 'ACCEPTED', 3 => 'DECLINED', 4 => 'TENTATIVE', ); # Horde/Date/Recurrence.php contains the related constants here. my %recur_type_map = ( 0 => 'NONE', 1 => 'DAILY', 2 => 'WEEKLY', 3 => 'MONTHLY', # _DATE 4 => 'MONTHLY', # _WEEKDAY 5 => 'YEARLY', # _DATE 6 => 'YEARLY', # _DAY 7 => 'YEARLY', # _WEEKDAY 8 => 'MONTHLY', # _LAST_WEEKDAY ); my %remapped = ( 'status' => sub { return [ { 'name' => 'status', 'value' => $event_status_map{ $_[0] } } ] }, 'title' => sub { return [ { 'name' => 'summary', 'value' => $_[0] } ] }, 'private' => sub { return [ { 'name' => 'class', 'value' => ( $_[0] ? 'private' : 'public' ) } ] }, 'modified' => sub { my $d = DateTime->from_epoch( 'epoch' => $_[0] ); my $format = "yyyymmdd'T'hhmmss'Z'"; return [ { 'name' => 'last-modified', 'value' => $d->format_cldr($format) } ]; }, 'attendees' => sub { return if !$_[0]; my $breakfast = PHP::Serialization::unserialize( $_[0] ); my $cnt = 0; if ( ref($breakfast) eq 'ARRAY' ) { $cnt = @{$breakfast}; } else { $cnt = scalar keys %{$breakfast}; } if ( $cnt < 1 ) { return [ { 'name' => 'attendee', 'value' => 'none', 'params' => { 'role' => ['REQ-PARTICIPANT'], 'partstat' => [''], 'rsvp' => [''] } } ]; } return [ map { my $key = $_; { 'name' => 'attendee', 'value' => "mailto:$key", 'params' => { 'role' => ['REQ-PARTICIPANT'], # Horde has no conception of non-participants 'partstat' => [ $response_status_map{ $breakfast->{$key}{'response'} } ], 'rsvp' => [ $breakfast->{$key}{'attendance'} ? 'true' : 'false' ], }, } } keys(%$breakfast) ]; }, 'creator_id' => sub { return [ { 'name' => 'organizer', 'value' => "mailto:$_[0]", 'params' => { 'cn' => $_[0] } } ]; }, ); # I'm only doing package level scoping here for ease of testing. our %extra_items = ( 'transp' => sub { return [ { 'name' => 'transp', 'value' => 'OPAQUE' } ] }, 'created' => sub { my $uid = $_[0]->{'event_uid'}; my $date = substr( $uid, 0, 14 ); # Reject invalid dates... Only horde's events have this reliably set. # We can do a "naive" numeric check here because it isnt' decimal math. if ( length $date < 8 || $date !~ m/^\d+$/ ) { $date = '00000000T000000Z'; } else { $date = substr( $date, 0, 8 ) . 'T' . substr( $date, 8 ) . 'Z'; } return [ { 'name' => 'created', 'value' => $date } ]; }, # Creation date is first part of event UID 'dtstart' => sub { my ($data) = @_; my $val = $data->{'event_start'}; $val =~ s/[-:]*//g; my $params = {}; if ( $data->{'event_allday'} ) { $params->{'value'} = 'DATE'; $val = substr( $val, 0, index( $val, " " ) ); } else { $val =~ tr/ /T/; } return [ { 'name' => 'dtstart', 'value' => $val, 'params' => $params } ]; }, 'dtend' => sub { my ($data) = @_; my $val = $data->{'event_end'}; $val =~ s/[-:]*//g; my $params = {}; if ( $data->{'event_allday'} ) { $params->{'value'} = 'DATE'; $val = substr( $val, 0, index( $val, " " ) ); } else { $val =~ tr/ /T/; } return [ { 'name' => 'dtend', 'value' => $val, 'params' => $params } ]; }, # No idea where it is getting dtstamp #'dtstamp' => sub { return [{ 'name' => 'dtstamp', 'value' => '' }] }, 'rrule' => sub { # https://datatracker.ietf.org/doc/html/rfc2445#section-4.3.10 my ($evt) = @_; return [] if !$evt->{'event_recurtype'}; $evt->{'event_recurinterval'} //= 0; $evt->{'event_recurdays'} //= 0; $evt->{'event_recurcount'} //= 0; $evt->{'event_recurenddate'} //= '99991231'; my $rrval = 'freq=' . $recur_type_map{ $evt->{'event_recurtype'} } . ";"; # FREQ is required $rrval .= 'interval=' . $evt->{'event_recurinterval'} . ";" if $evt->{'event_recurinterval'} != 0; # INTERVAL is optional $rrval .= 'byday=' . recur_days_calc( $evt->{'event_recurdays'} ) . ";" if $evt->{'event_recurdays'} != 0; # BYxxx rules are optional $rrval .= 'count=' . $evt->{'event_recurcount'} . ";" if $evt->{'event_recurcount'} != 0; # COUNT is optional $rrval .= 'until=' . $evt->{'event_recurenddate'} . ";" if $evt->{'event_recurcount'} == 0 && $evt->{'event_recurenddate'} ne '99991231'; # UNTIL is mutually exclusive with COUNT return [ { 'name' => 'rrule', 'value' => uc($rrval) } ]; }, # The two below have to be part of their own vcard. Datastructure # looks a bit strange as such ;_; #'valarm' => sub { return [{ 'name' => 'valarm', 'value' => '' }] }, #'vtimezone' => sub { return [{ 'name' => 'vtimezone', 'value' => '' }] }, ); __PACKAGE__->new(@ARGV)->run() if !caller; sub recur_days_calc ($hordedays) { my @icaldays; do { if ( $hordedays - 64 >= 0 ) { unshift @icaldays, ('SA'); $hordedays -= 64 } if ( $hordedays - 32 >= 0 ) { unshift @icaldays, ('FR'); $hordedays -= 32 } if ( $hordedays - 16 >= 0 ) { unshift @icaldays, ('TH'); $hordedays -= 16 } if ( $hordedays - 8 >= 0 ) { unshift @icaldays, ('WE'); $hordedays -= 8 } if ( $hordedays - 4 >= 0 ) { unshift @icaldays, ('TU'); $hordedays -= 4 } if ( $hordedays - 2 >= 0 ) { unshift @icaldays, ('MO'); $hordedays -= 2 } if ( $hordedays - 1 >= 0 ) { unshift @icaldays, ('SU'); $hordedays -= 1 } } while $hordedays > 0; return join ',', @icaldays; } sub run { my ($self) = @_; my $users = $self->getopt('user'); my $outdir = $self->getopt('out'); my $abs = Cwd::abs_path($outdir) if $outdir; $outdir = $abs ? $abs : $outdir; # At least we tried die $self->help() if !defined $users || ref $users ne 'ARRAY'; # The below check which is being nooped out is understandable in the # context of "a user wants to write to the DB". However, in this case we # are not going to write, instead only reading from the users' DBs in bulk. { no warnings qw{redefine}; local *Cpanel::Security::Authz::verify_not_root = sub { }; foreach my $user (@$users) { my $chalmers = Cpanel::DAV::Principal->get_principal($user); my $dbh = Cpanel::DAV::Backend::DB::Horde::get_dbh( $chalmers->{'name'} ); my $pops = Whostmgr::Email::list_pops_for($user); unshift @$pops, $user; foreach my $mailuser (@$pops) { $chalmers = Cpanel::DAV::Principal->get_principal($mailuser) if $mailuser ne $user; my $cals = Cpanel::DAV::Backend::HordeCalendar::get_calendars( $chalmers, $dbh ); my $mailuser_output; foreach my $cal ( @{ $cals->{data} } ) { my $ics_blob = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//cPanel Horde Calendar Exporter//export_horde_calendars_to_ics//EN\nX-WR-CALNAME:$cal->{'name'}\n"; my $uid = $cal->{'uid'}; my $query = 'SELECT * FROM kronolith_events WHERE calendar_id = ?'; my ( $matches, $exception ) = Cpanel::DAV::Backend::DB::Horde::select_all( $dbh, $query, $uid ); foreach my $event (@$matches) { my $evt_hr = { 'objects' => [ { 'type' => 'vevent', 'properties' => {}, } ], }; foreach my $prop ( keys(%$event) ) { my $prop_short = substr( $prop, 6 ); # event_ next if !defined $event->{$prop} || $skipped{$prop_short}; if ( $remapped{$prop_short} ) { $evt_hr->{'objects'}[0]{'properties'}{$prop_short} = $remapped{$prop_short}->( $event->{$prop} ); } else { # CPANEL-42420: It is HIGHly likely that the # description field has newlines/blank lines. # These unfortunately do not pass any known # parser's evaluation based on the spec, so # trim it. $evt_hr->{'objects'}[0]{'properties'}{$prop_short} = [ { 'name' => $prop_short, 'value' => _trim( $event->{$prop} ), }, ]; } } foreach my $item ( keys(%extra_items) ) { $evt_hr->{'objects'}[0]{'properties'}{$item} = $extra_items{$item}->($event); } # Reject events with nonsense values for DTSTART/DTEND (CPANEL-42509) next if grep { $evt_hr->{'objects'}[0]{'properties'}{$_} eq '00000000T000000' } qw{dtstart dtend}; my $vevent = Text::VCardFast::hash2vcard($evt_hr); if ( $event->{'event_alarm'} ) { my $valarm = "BEGIN:VALARM\nACTION:DISPLAY\nDESCRIPTION:$event->{'event_title'}\nTRIGGER;VALUE=DURATION:-PT$event->{'event_alarm'}M\nEND:VALARM\n"; $vevent =~ s/END:VEVENT/${valarm}END:VEVENT/; } # roundcube 1.5 does not comply with latest rfc so we create a crafted version which is compatible my $rc_sanitized; my $check_following = 0; foreach my $line ( split( /([\r\n])/, $vevent ) ) { chomp $line; next if !$line; if ( $line =~ m/^RRULE/ || ( $check_following && $line =~ m/^\s/ ) ) { # Currently limited to just the RRULE lines, to avoid issues with description and such $line =~ s/\\\;/\;/g; $line =~ s/\\\,/\,/g; if ( $line =~ m/^\s/ || $line =~ m/^RRULE/ ) { $check_following++; } else { $check_following = 0; } } else { $check_following = 0; } $rc_sanitized .= $line . "\n"; } $ics_blob .= $rc_sanitized; } $ics_blob .= "END:VCALENDAR\n"; $mailuser_output .= $ics_blob; } if ($outdir) { # HB-6674: If outdir looks like cpanelroundcube's home, # Write it for that user instead. $user = 'cpanelroundcube' if index( $outdir, "/var/cpanel/userhomes/cpanelroundcube" ) == 0; Cpanel::AccessIds::ReducedPrivileges::call_as_user( $user, sub { if ( !-d $outdir ) { my $mask = Cpanel::Umask->new(0027); mkdir("$outdir") or die "Can't create outdir '$outdir': $!"; } # Dies on fail, so don't guard it Cpanel::Slurper::write( "$outdir/$mailuser.ics", $mailuser_output, 0644 ); } ); } else { print $mailuser_output, "\n"; } } } } return 0; } sub _trim ($text) { return "" if !defined $text; $text =~ s/\s{2,}//mg; return $text; } =head1 USAGE /usr/local/cpanel/scripts/export_horde_calendars_to_ics --out ~/dump_dir --user 'john_doe' --user 'john_doe2' ... This script will export Horde calendars for the specified cPanel user(s) to the specified outdir (or to STDOUT if none is specified). =head2 OPTIONS --user: cPanel user(s) whose Horde calendar should be exported. Any mail users associated with the account will also be exported. --out: Directory to which the output should be sent. Each mail user's calendar is exported to '$MAILUSER.ics' file in the specified directory. If the specified directory does not exist, the script will attempt to create it. When not specified, output will be sent to STDOUT, with calendars separated by two new lines each. =cut 1;
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
cpan_sandbox | Folder | 0755 |
|
|
php_sandbox | Folder | 0755 |
|
|
MirrorSearch_pingtest | File | 2.38 KB | 0755 |
|
activesync-invite-reply | File | 1.69 KB | 0755 |
|
add_dns | File | 2.36 KB | 0755 |
|
adddns | File | 2.36 KB | 0755 |
|
addpop | File | 6.08 KB | 0755 |
|
addsystemuser | File | 3.27 KB | 0755 |
|
adduser | File | 92 B | 0755 |
|
apachelimits | File | 4.31 KB | 0755 |
|
archive_sync_zones | File | 3.02 KB | 0755 |
|
auto-adjust-mysql-limits | File | 1.81 KB | 0755 |
|
autorepair | File | 1.24 KB | 0755 |
|
backups_clean_metadata_for_missing_backups | File | 1.57 KB | 0755 |
|
backups_create_metadata | File | 15.75 KB | 0755 |
|
backups_list_user_files | File | 4.56 KB | 0755 |
|
balance_linked_node_quotas | File | 2.58 KB | 0755 |
|
biglogcheck | File | 1.69 KB | 0755 |
|
build_bandwidthdb_root_cache_in_background | File | 1.52 KB | 0755 |
|
build_cpnat | File | 3.41 KB | 0755 |
|
build_mail_sni | File | 3.87 KB | 0755 |
|
build_maxemails_config | File | 1.14 KB | 0755 |
|
builddovecotconf | File | 6.76 KB | 0755 |
|
buildeximconf | File | 7 KB | 0755 |
|
buildhttpdconf | File | 2.6 KB | 0755 |
|
buildnsdconf | File | 1.01 KB | 0755 |
|
buildpureftproot | File | 539 B | 0755 |
|
ccs-check | File | 4.91 KB | 0755 |
|
check_cpanel_pkgs | File | 10.75 KB | 0755 |
|
check_cpanel_rpms | File | 218 B | 0755 |
|
check_domain_tls_service_domains.pl | File | 6.68 KB | 0755 |
|
check_immutable_files | File | 5.49 KB | 0755 |
|
check_mail_spamassassin_compiledregexps_body_0 | File | 187 B | 0755 |
|
check_maxmem_against_domains_count | File | 3.57 KB | 0755 |
|
check_mount_procfs | File | 2.02 KB | 0755 |
|
check_mysql | File | 5.55 KB | 0755 |
|
check_security_advice_changes | File | 8.28 KB | 0755 |
|
check_unmonitored_enabled_services | File | 4.56 KB | 0755 |
|
check_unreliable_resolvers | File | 3.59 KB | 0755 |
|
check_users_my_cnf | File | 6.05 KB | 0755 |
|
check_valid_server_hostname | File | 7.66 KB | 0755 |
|
checkalldomainsmxs | File | 2.4 KB | 0755 |
|
checkbashshell | File | 1.18 KB | 0755 |
|
checkccompiler | File | 1.22 KB | 0755 |
|
checkexim.pl | File | 3.1 KB | 0755 |
|
checklink | File | 1.29 KB | 0755 |
|
checknsddirs | File | 1014 B | 0755 |
|
checkusers | File | 856 B | 0755 |
|
chkmydns | File | 561 B | 0755 |
|
chkpaths | File | 141 B | 0755 |
|
chpass | File | 416 B | 0755 |
|
ckillall | File | 1.11 KB | 0755 |
|
clean_dead_mailman_locks | File | 2.09 KB | 0755 |
|
clean_up_temp_wheel_users | File | 2.44 KB | 0755 |
|
clean_user_php_sessions | File | 4.76 KB | 0755 |
|
cleandns | File | 13.09 KB | 0755 |
|
cleandns8 | File | 417 B | 0755 |
|
cleanmsglog | File | 735 B | 0755 |
|
cleanphpsessions | File | 932 B | 0755 |
|
cleanphpsessions.php | File | 658 B | 0644 |
|
cleanquotas | File | 1.61 KB | 0755 |
|
cleansessions | File | 5.91 KB | 0755 |
|
cleanupinterchange | File | 2.64 KB | 0755 |
|
cleanupmysqlprivs | File | 533 B | 0755 |
|
clear_cpaddon_ui_caches | File | 1.27 KB | 0755 |
|
clear_orphaned_virtfs_mounts | File | 3.56 KB | 0755 |
|
comparecdb | File | 1.52 KB | 0755 |
|
compilers | File | 2.86 KB | 0755 |
|
compilerscheck | File | 999 B | 0755 |
|
configure_firewall_for_cpanel | File | 520 B | 0755 |
|
configure_rh_firewall_for_cpanel | File | 520 B | 0755 |
|
configure_rh_ipv6_firewall_for_cpanel | File | 520 B | 0755 |
|
convert2dovecot | File | 682 B | 0755 |
|
convert_accesshash_to_token | File | 4.07 KB | 0755 |
|
convert_and_migrate_from_legacy_backup | File | 1.97 KB | 0755 |
|
convert_maildir_to_mdbox | File | 1.66 KB | 0755 |
|
convert_mdbox_to_maildir | File | 1.66 KB | 0755 |
|
convert_roundcube_mysql2sqlite | File | 25.28 KB | 0755 |
|
convert_to_dovecot_delivery | File | 4.33 KB | 0755 |
|
convert_whmxfer_to_sqlite | File | 1.46 KB | 0755 |
|
copy_user_mail_as_root | File | 1.25 KB | 0755 |
|
copy_user_mail_as_user | File | 1.34 KB | 0755 |
|
cpaddonsup | File | 3.25 KB | 0755 |
|
cpan_config | File | 2.8 KB | 0755 |
|
cpanel_initial_install | File | 67.36 KB | 0755 |
|
cpanelsync | File | 28.31 KB | 0755 |
|
cpanelsync_postprocessor | File | 1.62 KB | 0755 |
|
cpanpingtest | File | 965 B | 0755 |
|
cpbackup | File | 44.77 KB | 0755 |
|
cpbackup_transport_file | File | 5.65 KB | 0755 |
|
cpdig | File | 1.81 KB | 0755 |
|
cpfetch | File | 1.23 KB | 0755 |
|
cphulkdblacklist | File | 433 B | 0755 |
|
cphulkdwhitelist | File | 1.3 KB | 0755 |
|
cpservice | File | 2.87 KB | 0755 |
|
cpuser_port_authority | File | 19.29 KB | 0755 |
|
cpuser_service_manager | File | 10.85 KB | 0755 |
|
createacct | File | 24.57 MB | 0700 |
|
custom_backup_destination.pl.sample | File | 5.06 KB | 0755 |
|
custom_backup_destination.pl.skeleton | File | 2.84 KB | 0755 |
|
dav_change_hostname | File | 3.57 KB | 0755 |
|
dcpumon-wrapper | File | 850 B | 0755 |
|
delpop | File | 6.2 KB | 0755 |
|
detect_env_capabilities | File | 508 B | 0755 |
|
disable_prelink | File | 2.77 KB | 0755 |
|
disable_sqloptimizer | File | 1.49 KB | 0755 |
|
disablefileprotect | File | 2.09 KB | 0755 |
|
distro_changed_hook | File | 1.16 KB | 0755 |
|
dnscluster | File | 4.44 KB | 0755 |
|
dnsqueuecron | File | 1.29 KB | 0755 |
|
dnssec-cluster-keys | File | 3.75 KB | 0755 |
|
dovecot_maintenance | File | 7.93 KB | 0755 |
|
dovecot_set_defaults.pl | File | 984 B | 0755 |
|
dumpcdb | File | 866 B | 0755 |
|
dumpinodes | File | 687 B | 0755 |
|
dumpquotas | File | 616 B | 0755 |
|
dumpstor | File | 913 B | 0755 |
|
ea4_fresh_install | File | 2.64 KB | 0755 |
|
edit_cpanelsync_exclude_list | File | 2.58 KB | 0755 |
|
editquota | File | 3.44 KB | 0755 |
|
elevate-cpanel | File | 349.17 KB | 0700 |
|
email_archive_maintenance | File | 6.15 KB | 0755 |
|
email_hold_maintenance | File | 1.46 KB | 0755 |
|
enable_spf_dkim_globally | File | 8.83 KB | 0755 |
|
enable_sqloptimizer | File | 1.57 KB | 0755 |
|
enablefileprotect | File | 2.1 KB | 0755 |
|
ensure_autoenabled_features | File | 2.5 MB | 0700 |
|
ensure_conf_dir_crt_key | File | 4.82 KB | 0755 |
|
ensure_cpuser_file_ip | File | 2.55 KB | 0755 |
|
ensure_crontab_permissions | File | 1.08 KB | 0755 |
|
ensure_dovecot_memory_limits_meet_minimum | File | 3.13 KB | 0755 |
|
ensure_hostname_resolves | File | 2.57 KB | 0755 |
|
ensure_includes | File | 601 B | 0755 |
|
ensure_vhost_includes | File | 13.53 KB | 0755 |
|
exim_tidydb | File | 2.96 KB | 0755 |
|
eximconfgen | File | 1.32 KB | 0755 |
|
eximstats_spam_check | File | 867 B | 0755 |
|
export_horde_calendars_to_ics | File | 15.07 KB | 0755 |
|
export_horde_contacts_to_vcf | File | 13.94 KB | 0755 |
|
exportmydnsdb | File | 3.47 KB | 0755 |
|
expunge_expired_certificates_from_sslstorage | File | 3.56 KB | 0755 |
|
expunge_expired_pkgacct_sessions | File | 852 B | 0755 |
|
expunge_expired_transfer_sessions | File | 1.06 KB | 0755 |
|
fastmail | File | 5.16 KB | 0755 |
|
featuremod | File | 1.92 KB | 0755 |
|
fetchfile | File | 422 B | 0755 |
|
find_and_fix_rpm_issues | File | 6.99 KB | 0755 |
|
find_outdated_services | File | 5.41 KB | 0755 |
|
find_pids_with_inotify_watch_on_path | File | 3.66 KB | 0755 |
|
fix-cpanel-perl | File | 28.82 KB | 0755 |
|
fix-listen-on-localhost | File | 3.52 KB | 0755 |
|
fix-web-vhost-configuration | File | 6.15 KB | 0755 |
|
fix_addon_permissions | File | 7.68 KB | 0755 |
|
fix_dns_zone_ttls | File | 1.34 KB | 0755 |
|
fix_innodb_tables | File | 4.05 KB | 0755 |
|
fix_pear_registry | File | 4.07 KB | 0755 |
|
fix_reseller_acls | File | 10.88 KB | 0755 |
|
fixetchosts | File | 4.32 KB | 0755 |
|
fixheaders | File | 572 B | 0755 |
|
fixmailinglistperms | File | 1008 B | 0755 |
|
fixmailman | File | 2.09 KB | 0755 |
|
fixnamedviews | File | 1.22 KB | 0755 |
|
fixndc | File | 413 B | 0755 |
|
fixquotas | File | 17.45 KB | 0755 |
|
fixrelayd | File | 1.74 KB | 0755 |
|
fixrndc | File | 16.48 KB | 0755 |
|
fixtar | File | 503 B | 0755 |
|
fixtlsversions | File | 4.7 KB | 0755 |
|
fixvaliases | File | 2 KB | 0755 |
|
fixwebalizer | File | 966 B | 0755 |
|
forcelocaldomain | File | 895 B | 0755 |
|
ftpfetch | File | 2.2 KB | 0755 |
|
ftpquotacheck | File | 8.31 KB | 0755 |
|
ftpsfetch | File | 2.36 KB | 0755 |
|
ftpupdate | File | 261 B | 0755 |
|
gather_update_log_stats | File | 4.25 KB | 0700 |
|
gather_update_logs_setupcrontab | File | 5.45 KB | 0700 |
|
gemwrapper | File | 1.74 KB | 0755 |
|
gencrt | File | 6.26 KB | 0755 |
|
generate_account_suspension_include | File | 5.7 KB | 0755 |
|
generate_google_drive_credentials | File | 1.11 KB | 0755 |
|
generate_google_drive_oauth_uri | File | 984 B | 0755 |
|
generate_maildirsize | File | 13.94 KB | 0755 |
|
gensysinfo | File | 1.16 KB | 0755 |
|
get_locale_from_legacy_name_info | File | 1.99 KB | 0755 |
|
getremotecpmove | File | 12.67 KB | 0755 |
|
grpck | File | 1.19 KB | 0755 |
|
hackcheck | File | 3.02 KB | 0755 |
|
hook | File | 1.45 KB | 0755 |
|
httpspamdetect | File | 2.66 KB | 0755 |
|
hulk-unban-ip | File | 3.93 MB | 0700 |
|
import_exim_data | File | 8.39 KB | 0755 |
|
importmydnsdb | File | 11.34 KB | 0755 |
|
increase_filesystem_limits | File | 891 B | 0755 |
|
initacls | File | 4.99 KB | 0755 |
|
initfpsuexec | File | 444 B | 0755 |
|
initquotas | File | 19.47 KB | 0755 |
|
initsuexec | File | 4.03 KB | 0755 |
|
install_cpanel_analytics | File | 1.93 KB | 0755 |
|
install_dovecot_fts | File | 1.57 KB | 0755 |
|
install_plugin | File | 2.8 KB | 0755 |
|
installpkg | File | 575 B | 0755 |
|
installpostgres | File | 6.56 KB | 0755 |
|
installsqlite3 | File | 1.82 KB | 0755 |
|
ipcheck | File | 3.93 KB | 0755 |
|
ipusage | File | 7.45 KB | 0755 |
|
isdedicatedip | File | 602 B | 0755 |
|
jetbackup-check | File | 3.69 KB | 0755 |
|
killdns | File | 422 B | 0755 |
|
killdns-dnsadmin | File | 1.15 KB | 0755 |
|
killmysqluserprivs | File | 433 B | 0755 |
|
killmysqlwildcard | File | 1.15 KB | 0755 |
|
killpvhost | File | 853 B | 0755 |
|
killspamkeys | File | 937 B | 0755 |
|
link_3rdparty_binaries | File | 1.24 KB | 0755 |
|
linksubemailtomainacct | File | 3.17 KB | 0755 |
|
listcheck | File | 538 B | 0755 |
|
listsubdomains | File | 1.05 KB | 0755 |
|
litespeed-check | File | 3.86 KB | 0755 |
|
locale_export | File | 4.82 KB | 0755 |
|
locale_import | File | 4.35 KB | 0755 |
|
locale_info | File | 3.99 KB | 0755 |
|
logo.dat | File | 205 B | 0644 |
|
magicloader | File | 1.94 KB | 0755 |
|
maildir_converter | File | 6.08 KB | 0755 |
|
mailperm | File | 16.58 KB | 0755 |
|
mailscannerupdate | File | 2.42 KB | 0755 |
|
mainipcheck | File | 10 KB | 0755 |
|
maintenance | File | 46.62 KB | 0755 |
|
make_config | File | 407 B | 0644 |
|
make_hostname_unowned | File | 1.16 KB | 0755 |
|
manage_extra_marketing | File | 12.41 KB | 0700 |
|
manage_greylisting | File | 16.19 KB | 0755 |
|
manage_mysql_profiles | File | 20.02 KB | 0755 |
|
migrate-pdns-conf | File | 9.83 KB | 0755 |
|
migrate_legacy_wordpress_to_modern_wordpress | File | 12.99 KB | 0700 |
|
migrate_local_ini_to_php_ini | File | 7.41 KB | 0755 |
|
migrate_whmtheme_file_to_userdata | File | 2.95 KB | 0755 |
|
mkwwwacctconf | File | 2.33 KB | 0755 |
|
modify_accounts | File | 4.09 KB | 0755 |
|
modify_default_featurelist_entry.pl | File | 5.18 KB | 0700 |
|
modify_packages | File | 3.65 KB | 0755 |
|
modsec_vendor | File | 15.63 KB | 0755 |
|
mysqlconnectioncheck | File | 6.55 KB | 0755 |
|
mysqlpasswd | File | 4.09 KB | 0755 |
|
named.ca | File | 1.57 KB | 0644 |
|
named.rfc1912.zones | File | 774 B | 0644 |
|
nixstatsagent.sh | File | 58.67 KB | 0700 |
|
notify_expiring_certificates | File | 9.37 KB | 0755 |
|
notify_expiring_certificates_on_linked_nodes | File | 1.33 KB | 0755 |
|
oopscheck | File | 1.12 KB | 0755 |
|
optimize_eximstats | File | 3.88 KB | 0755 |
|
patch_mail_spamassassin_compiledregexps_body_0 | File | 2.39 KB | 0755 |
|
patchfdsetsize | File | 2.72 KB | 0755 |
|
pedquota | File | 2.26 KB | 0755 |
|
perform_sqlite_auto_rebuild_db_maintenance | File | 2.2 KB | 0755 |
|
perlinstaller | File | 528 B | 0755 |
|
perlmods | File | 1.18 KB | 0755 |
|
php_fpm_config | File | 9.73 KB | 0755 |
|
phpini_tidy | File | 687 B | 0755 |
|
pkgacct | File | 87.82 KB | 0755 |
|
post_snapshot | File | 3.16 KB | 0755 |
|
post_sync_cleanup | File | 6.09 KB | 0755 |
|
primary_virtual_host_migration | File | 2.44 KB | 0755 |
|
process_pending_cpanel_php_pear_registration | File | 3.49 KB | 0755 |
|
process_site_templates | File | 7.27 KB | 0755 |
|
proxydomains | File | 9.34 KB | 0755 |
|
ptycheck | File | 724 B | 0755 |
|
purge_modsec_log | File | 1.53 KB | 0755 |
|
purge_old_config_caches | File | 2.08 KB | 0755 |
|
pwck | File | 708 B | 0755 |
|
quickdnslookup | File | 1.13 KB | 0755 |
|
quickwhoisips | File | 2.29 KB | 0755 |
|
quota_auto_fix | File | 1.41 KB | 0755 |
|
quotacheck | File | 22.36 KB | 0755 |
|
rawchpass | File | 460 B | 0755 |
|
rdate | File | 4.8 KB | 0755 |
|
realadduser | File | 5.61 KB | 0755 |
|
realchpass | File | 3.26 KB | 0755 |
|
realperlinstaller | File | 5.67 KB | 0755 |
|
realrawchpass | File | 425 B | 0755 |
|
rebuild_available_addons_packages_cache | File | 1.27 KB | 0755 |
|
rebuild_available_rpm_addons_cache | File | 1.27 KB | 0755 |
|
rebuild_bandwidthdb_root_cache | File | 1.45 KB | 0755 |
|
rebuild_dbmap | File | 5.8 KB | 0755 |
|
rebuild_provider_openid_connect_links_db | File | 1.01 KB | 0755 |
|
rebuild_whm_chrome | File | 2.22 KB | 0755 |
|
rebuilddnsconfig | File | 26.21 KB | 0755 |
|
rebuildhttpdconf | File | 2.6 KB | 0755 |
|
rebuildinstalledssldb | File | 2.85 KB | 0755 |
|
rebuildippool | File | 509 B | 0755 |
|
rebuildnsdzones | File | 1.14 KB | 0755 |
|
rebuilduserssldb | File | 948 B | 0755 |
|
refresh-dkim-validity-cache | File | 5.97 KB | 0755 |
|
regenerate_tokens | File | 2.18 KB | 0755 |
|
reloadnsd | File | 821 B | 0755 |
|
remote_log_transfer | File | 11.6 KB | 0755 |
|
remove_dovecot_index_files | File | 5.89 KB | 0755 |
|
removeacct | File | 20.91 MB | 0700 |
|
rescan_user_dovecot_fts | File | 2.98 KB | 0755 |
|
reset_mail_quotas_to_sane_values | File | 6.82 KB | 0755 |
|
resetmailmanurls | File | 2.03 KB | 0755 |
|
resetquotas | File | 4.68 KB | 0755 |
|
restartsrv | File | 3.23 KB | 0755 |
|
restartsrv_apache | File | 422 B | 0755 |
|
restartsrv_apache_php_fpm | File | 9.9 MB | 0755 |
|
restartsrv_base | File | 9.9 MB | 0755 |
|
restartsrv_bind | File | 9.9 MB | 0755 |
|
restartsrv_chkservd | File | 427 B | 0755 |
|
restartsrv_clamd | File | 9.9 MB | 0755 |
|
restartsrv_cpanalyticsd | File | 9.9 MB | 0755 |
|
restartsrv_cpanel_php_fpm | File | 9.9 MB | 0755 |
|
restartsrv_cpanellogd | File | 9.9 MB | 0755 |
|
restartsrv_cpdavd | File | 9.9 MB | 0755 |
|
restartsrv_cpgreylistd | File | 9.9 MB | 0755 |
|
restartsrv_cphulkd | File | 9.9 MB | 0755 |
|
restartsrv_cpipv6 | File | 9.9 MB | 0755 |
|
restartsrv_cpsrvd | File | 9.9 MB | 0755 |
|
restartsrv_crond | File | 9.9 MB | 0755 |
|
restartsrv_dnsadmin | File | 9.9 MB | 0755 |
|
restartsrv_dovecot | File | 9.9 MB | 0755 |
|
restartsrv_exim | File | 9.9 MB | 0755 |
|
restartsrv_eximstats | File | 504 B | 0755 |
|
restartsrv_ftpd | File | 426 B | 0755 |
|
restartsrv_ftpserver | File | 911 B | 0755 |
|
restartsrv_httpd | File | 9.9 MB | 0755 |
|
restartsrv_imap | File | 437 B | 0755 |
|
restartsrv_inetd | File | 2.47 KB | 0755 |
|
restartsrv_ipaliases | File | 9.9 MB | 0755 |
|
restartsrv_lmtp | File | 437 B | 0755 |
|
restartsrv_mailman | File | 9.9 MB | 0755 |
|
restartsrv_mydns | File | 9.9 MB | 0755 |
|
restartsrv_mysql | File | 9.9 MB | 0755 |
|
restartsrv_named | File | 777 B | 0755 |
|
restartsrv_nscd | File | 9.9 MB | 0755 |
|
restartsrv_nsd | File | 9.9 MB | 0755 |
|
restartsrv_p0f | File | 9.9 MB | 0755 |
|
restartsrv_pdns | File | 9.9 MB | 0755 |
|
restartsrv_pop3 | File | 437 B | 0755 |
|
restartsrv_postgres | File | 427 B | 0755 |
|
restartsrv_postgresql | File | 9.9 MB | 0755 |
|
restartsrv_powerdns | File | 442 B | 0755 |
|
restartsrv_proftpd | File | 9.9 MB | 0755 |
|
restartsrv_pureftpd | File | 9.9 MB | 0755 |
|
restartsrv_queueprocd | File | 9.9 MB | 0755 |
|
restartsrv_rsyslog | File | 9.9 MB | 0755 |
|
restartsrv_rsyslogd | File | 437 B | 0755 |
|
restartsrv_spamd | File | 9.9 MB | 0755 |
|
restartsrv_sshd | File | 9.9 MB | 0755 |
|
restartsrv_syslogd | File | 2.4 KB | 0755 |
|
restartsrv_tailwatchd | File | 9.9 MB | 0755 |
|
restartsrv_unknown | File | 9.9 MB | 0755 |
|
restartsrv_xinetd | File | 422 B | 0755 |
|
restorecpuserfromcache | File | 1.96 KB | 0755 |
|
restorepkg | File | 36.49 MB | 0700 |
|
rfc1912_zones.tar | File | 10 KB | 0644 |
|
rpmup | File | 4.77 KB | 0755 |
|
rsync-user-homedir.pl | File | 5.76 KB | 0755 |
|
run_if_exists | File | 512 B | 0755 |
|
runstatsonce | File | 440 B | 0755 |
|
runweblogs | File | 1.02 KB | 0755 |
|
sa-update_wrapper | File | 3.34 KB | 0755 |
|
safetybits.pl | File | 844 B | 0755 |
|
secureit | File | 4.72 KB | 0755 |
|
securemysql | File | 4.54 KB | 0755 |
|
securerailsapps | File | 3.58 KB | 0755 |
|
securetmp | File | 15.99 KB | 0755 |
|
sendicq | File | 474 B | 0755 |
|
servicedomains | File | 9.34 KB | 0755 |
|
set_mailman_archive_perms | File | 1.75 KB | 0755 |
|
set_php_memory_limits | File | 3.67 KB | 0755 |
|
setpostgresconfig | File | 6.04 KB | 0755 |
|
setup_greylist_db | File | 16.19 KB | 0755 |
|
setup_modsec_db | File | 1.3 KB | 0755 |
|
setupftpserver | File | 10.47 KB | 0755 |
|
setupmailserver | File | 9.55 KB | 0755 |
|
setupnameserver | File | 13.75 KB | 0755 |
|
shrink_modsec_ip_database | File | 12.97 KB | 0755 |
|
simpleps | File | 3.05 KB | 0755 |
|
slurp_exim_mainlog | File | 5.78 KB | 0755 |
|
smartcheck | File | 15.13 KB | 0755 |
|
smtpmailgidonly | File | 8.15 KB | 0755 |
|
snapshot_prep | File | 5.88 KB | 0755 |
|
spamassassin_dbm_cleaner | File | 5.85 KB | 0755 |
|
spamassassindisable | File | 3.74 KB | 0755 |
|
spamboxdisable | File | 2.27 KB | 0755 |
|
sshcontrol | File | 14.38 KB | 0755 |
|
ssl_crt_status | File | 3.84 KB | 0755 |
|
suspendacct | File | 18.01 KB | 0755 |
|
suspendmysqlusers | File | 4.42 KB | 0755 |
|
swapip | File | 3.82 KB | 0755 |
|
sync-mysql-users-from-grants | File | 1.2 KB | 0755 |
|
sync_child_accounts | File | 1.77 KB | 0755 |
|
sync_contact_emails_to_cpanel_users_files | File | 1.14 KB | 0755 |
|
synccpaddonswithsqlhost | File | 6.59 KB | 0755 |
|
synctransfers | File | 1.92 KB | 0755 |
|
syslog_check | File | 1.36 KB | 0755 |
|
sysup | File | 645 B | 0755 |
|
test_sa_compiled | File | 1.07 KB | 0755 |
|
transfer_account_as_user | File | 2.34 KB | 0755 |
|
transfer_accounts_as_root | File | 4.76 KB | 0755 |
|
transfer_in_progress | File | 3.08 KB | 0755 |
|
transfer_in_progress.pod | File | 312 B | 0644 |
|
transfermysqlusers | File | 9.53 MB | 0700 |
|
try-later | File | 7.95 KB | 0755 |
|
unblockip | File | 667 B | 0755 |
|
uninstall_cpanel_analytics | File | 1.2 KB | 0755 |
|
uninstall_dovecot_fts | File | 562 B | 0755 |
|
uninstall_plugin | File | 2.84 KB | 0755 |
|
unlink_service_account | File | 2.62 KB | 0755 |
|
unpkgacct | File | 4.6 KB | 0755 |
|
unslavenamedconf | File | 863 B | 0755 |
|
unsuspendacct | File | 17.8 KB | 0755 |
|
unsuspendmysqlusers | File | 6.71 KB | 0755 |
|
upcp | File | 31.56 KB | 0755 |
|
upcp-running | File | 2.7 KB | 0755 |
|
upcp.static | File | 708.4 KB | 0755 |
|
update-packages | File | 4.77 KB | 0755 |
|
update_apachectl | File | 480 B | 0755 |
|
update_db_cache | File | 430 B | 0755 |
|
update_dkim_keys | File | 1.45 KB | 0755 |
|
update_exim_rejects | File | 1.21 KB | 0755 |
|
update_existing_mail_quotas_for_account | File | 4.78 KB | 0755 |
|
update_known_proxy_ips | File | 1002 B | 0755 |
|
update_local_rpm_versions | File | 4.56 KB | 0755 |
|
update_mailman_cache | File | 8.34 KB | 0755 |
|
update_mysql_systemd_config | File | 1.25 KB | 0755 |
|
update_neighbor_netblocks | File | 487 B | 0755 |
|
update_sa_config | File | 2.14 KB | 0755 |
|
update_spamassassin_config | File | 10.73 KB | 0755 |
|
update_users_jail | File | 691 B | 0755 |
|
update_users_vhosts | File | 801 B | 0755 |
|
updatedomainips | File | 605 B | 0755 |
|
updatenameserverips | File | 1.66 KB | 0755 |
|
updatenow | File | 5.18 KB | 0755 |
|
updatenow.static | File | 1.91 MB | 0755 |
|
updatenow.static-cpanelsync | File | 1.97 MB | 0700 |
|
updatesigningkey | File | 1.95 KB | 0755 |
|
updatessldomains | File | 1.81 KB | 0755 |
|
updatesupportauthorizations | File | 2.49 KB | 0755 |
|
updateuserdatacache | File | 2.47 KB | 0755 |
|
updateuserdomains | File | 774 B | 0755 |
|
upgrade_bandwidth_dbs | File | 2.22 KB | 0755 |
|
upgrade_subaccount_databases | File | 2.73 KB | 0755 |
|
userdata_wildcard_cleanup | File | 5.74 KB | 0755 |
|
userdirctl | File | 5.01 KB | 0755 |
|
validate_sshkey_passphrase | File | 1.21 KB | 0755 |
|
verify_api_spec_files | File | 757 B | 0755 |
|
verify_pidfile | File | 1.96 KB | 0755 |
|
verify_vhost_includes | File | 7.34 KB | 0755 |
|
vps_optimizer | File | 7.82 KB | 0755 |
|
vzzo-fixer | File | 725 B | 0755 |
|
whmlogin | File | 2.33 KB | 0755 |
|
whoowns | File | 1.13 KB | 0755 |
|
wpt_license | File | 6.27 MB | 0700 |
|
wwwacct | File | 24.57 MB | 0700 |
|
wwwacct2 | File | 88 B | 0755 |
|
xfer_rcube_schema_migrate.pl | File | 2.4 KB | 0755 |
|
xfer_rcube_uid_resolver.pl | File | 1.8 KB | 0755 |
|
xferpoint | File | 3.13 KB | 0755 |
|
xfertool | File | 16.14 KB | 0755 |
|
zoneexists | File | 800 B | 0755 |
|