HF PanelDocsv1.0.0

Bulk changes

Change many hosting accounts at once — PHP, package, suspension, limits, SSL, moves and more — with a preview first and a log per account.

Bulk changes makes one change to many hosting accounts at once. You always see a preview first: per account what would change, what is already so and what would be refused, with the count and an estimated time. The change then runs in the background, and you get an email when it has finished.

Where: Server Admin › Accounts › Accounts › Bulk changes (in the bar above the accounts list)

Choose the accounts

Choice What it does
By filter every account that matches all the fields you fill in: Package, Reseller (or Your own customers), Server, Status, PHP version (the account's or one of its websites'), Has the feature, Created from / Created until, Disk used over (MB); empty fields match everything
Ticked the accounts you ticked on Accounts before clicking Bulk changes
CSV import one change per line, see CSV import

One bulk change covers at most 5000 accounts.

Choose the change

Change What happens to each account
PHP version all websites switch to the version, or only the website in Only this website (empty = all)
Package moves to the new package and gets its limits
Suspend suspended; the Reason is required and kept in the activity log
Unsuspend active again (a reason is optional)
Feature list the feature list of the account's package; every account on that package gets it
Limits the account's own resource limits; empty fields use the package's values
Backup schedule the account's own backup schedule (off, daily or weekly, the time and how many to keep, up to the plan's limit)
WordPress updates the auto-update policy of every WordPress site of the account
Sending limits outgoing emails per hour and per day (empty = the package's, 0 = unlimited)
Audience group adds the account to a named group, or removes it; announcements can be sent to that group
Malware scan scans the account's files
Free SSL a free certificate for every website that has none yet
Move to server starts a move to another server (one per account, followed on Move accounts)

Accounts at once (1–8) sets how many accounts change at the same time. Never more than one account per server is changed at a time, whatever the number.

Preview

Click Preview. Nothing changes yet. Each account shows one of:

State Meaning
Will change what the change will do, e.g. "PHP 8.2 → 8.3 on all 3 website(s)"
No change the account already has it
Refused the change cannot be made, with the reason

Some refusals:

  • the new package allows less disk than the account uses, or fewer domains, databases or mailboxes than it has;
  • the new package (or feature list) takes away a feature the account uses — databases, email, cron jobs, FTP or WordPress;
  • the PHP version is not installed on the account's server, or the account has no such website;
  • the plan does not include scheduled backups, the account has no WordPress sites, or it is already being moved.

Click Run on N account(s) to start. When the accounts or their state changed after the preview, the run is refused with The accounts or their state changed since the preview. Preview again. — so what runs is what you saw.

Follow a job

The job's page shows its progress, a filter per state and a line per account with its result (Changed, No change, Refused, Failed, Skipped). It updates every few seconds while it runs. Recent bulk changes lists the latest jobs.

  • Cancel — accounts not started yet are skipped; the ones already running finish.
  • Resume — runs the skipped accounts of a cancelled job.

Each account is checked again just before its change, so an account that changed in the meantime is refused rather than changed twice. When a job stopped (the server or the panel restarted), it carries on by itself within five minutes.

At the end the person who started the job gets an email with the counts and the accounts that were not changed, and the hook event accounts.bulk_changed fires (Event hooks).

CSV import

Choose CSV import, then paste the lines or pick a file. Each line is username,field,value; a first line username,field,value is skipped. The same preview shows one line per row, and a row with an unknown account, field or value is refused on its own.

text
username,field,value
sarahbakes,php,8.3
sarahbakes,php,8.2@shop.example.com
brightweb,package,Business
brightweb,suspend,Unpaid invoice
sarahbakes,mail_hour,200
sarahbakes,backup,daily:2:7
Field Value
php a version, or version@website for one website
package the package's name or id
suspend / unsuspend the reason (required for suspend)
feature_list the list's name, or everything
cpu, memory_mb, max_procs, io_mbps, iops, php_workers, app_procs one own limit; package (or empty) goes back to the package's
backup off, daily:HOUR:KEEP or weekly:DAY:HOUR:KEEP (DAY 0 = Sunday)
autoupdate off, notify or auto
mail_hour / mail_day a number, 0 = unlimited, package = the package's
audience_add / audience_remove the group's name
scan, ssl nothing
move the server's name or id, or main