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.
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 |