Here is an example python script that can be run to specifically backup hosted feature layers from ArcGIS Online to a local drive or network drive on your computer or network. Although not ideal to code in credentials, if it is stored and ran from a secure machine, it can be scheduled to run automatically with Windows Task Scheduler. Alternatively, you can run this script manually and alter it to prompt you for credentials. Thanks to Adam Koelker for presenting the core of this script via YouTube. I adapted to query and loop through a specific set, and added some print statements.
from time import strftime
print (strftime("%c"))
from arcgis.gis import GIS
###Authenticate to ArcGIS Online
gis=GIS("https://yourorganization.maps.arcgis.com","yourUsername","yourPassword")
###Query to for all items to be downloaded. In this case, it's searching for all feature layers marked as authoritative
myFeatureCollections=gis.content.search(query="contentstatus:org_authoritative",item_type="Feature Layer Collection",max_items=1000)
###Output location for downloaded backups
output=r"C:/path/to/output/location"
###Initiate cycle to export, download, and delete backups
for item in myFeatureCollections:
try:
print('Exporting '+str(item.title))
currentItemID=item.itemid
dataitem=gis.content.get(currentItemID)
### Create Backup
tempfile=strftime(dataitem.title+"_backup_%Y%m%d")
dataitem.export(title=tempfile,export_format="File Geodatabase",parameters=None,wait=True)
except:
print("Could not create backup for "+str(item.title)+' ('+str(item.itemid)+')')
pass
try:
### Find and download export
myexport=gis.content.search(tempfile,item_type="File Geodatabase")
fgdb=gis.content.get(myexport[0].itemid)
fgdb.download(save_path=output)
print("Downloaded "+str(fgdb.title)+" to "+output)
except:
print("Could not download export for "+str(myexport[0]))
pass
try:
###Delete export
fgdb.delete()
except:
print("Could not delete export for "+str(fgdb))
pass
print("Script completed at {}".format(strftime("%c")))
EDIT: This query no longer retrieves explicitly hosted feature layers, but also stored web layers. See https://developers.arcgis.com/rest/users-groups-and-items/items-and-item-types.htm for updated item types that can be queried