[APP] Tasker: Share your setup

Search This thread

teh_lorax

Senior Member
Aug 31, 2006
480
67
Can't make heads or tails of your profile. I thought I understood Tasker but apparently not :p

Actually kind of surprising that Tasker can't run shell commands without a plugin.

It was initially designed, and still is, for people to use without root. Not many non-root shell commands that people would likely want to run...
 

brandall

Senior Member
May 16, 2008
2,679
5,221
Birmingham
Tasker - Scheduled Nandroid Backup with File Management [V4]

Profile Aim

DUE TO CHANGES IN ROM MANAGER THIS IS CURRENTLY NOT WORKING! :mad:

Working on a fix....


To take a nandroid backup whilst you sleep and manage the backup files so no more than two are stored.

Downloads

ROM Manager Free from the market
Locale Execute Plugin Free from the market
Icons used are Glossy Silver HD free from 'Download more icons' prompt in Tasker

Profile Explanantion

V2 - [Dropped] (But good for educational purposes)
Code:
There are only a few actions to explain in more detail:

The task [B]NandroidFiles[/B] deletes the Nandroid backups from two days before. I set this as two days so not to use too much storage space and to make sure there was a spare backup in case the daily backup task failed for any reason.

The back up folder is found in [I]sdcard/clockworkmod/backup/[/I] and automatically named [I]scheduledbackup-2011-06-02-05.00.00/[/I]

The '2011-06-02' is initially a problem as this is almost the opposite of Tasker's inbuilt [B]%DATE[/B] variable formatted as '6-2-11'. We need to use Tasker's [B]%DATE[/B] minus two days to match it to the dated backup file we want to delete.

Following the task through, you'll see that we transfer [B]%DATE[/B] to the created variable [B][B]%NDATE[/B][/B] before 'variable splitting' it by the '-' to leave 6 2 and 11 in [B]%NDATE1[/B], [B]%NDATE2[/B] and [B]%NDATE3[/B] respectively.

So, it's the 2nd of June for the sake of this example and using basic maths would mean that two days before this would be the 2-2 of June = 0th of June!? That's obviously no good to us... It should be the 31st May, so how do we easily do that...?!!? :eek: 

The answer is to use a 'pseudo-array' from [URL="http://groups.google.com/group/tasker/browse_thread/thread/1e1c531b900312e9#"]this thread[/URL] with credit to the brains of [URL="http://androidforums.com/members/unclemike.html"]UncleMike [/URL]. Now don't take a look at the below and give up reading, because it's actually a very simple and useful process. Honest(!): 

If we are in the 6th month of the year which is June and our -2 days are taking us back to the number of days in May, then we need to quickly reference the 6th month to the 31 days of May. Have a look below and you'll see that between the brackets of (6) is the number 31.
[CODE]x(1)31(1)(2)31(2)(3)28(3)(4)31(4)(5)30(5)(6)31(6)(7)30(7)(8)31(8)(9)31(9)(10)30(10)(11)31(11)(12)30(12)x
We set the above to a created variable of %NMONTH and using a very simple variable split of the current month number of 6, which in the previous split was set to %NDATE1 we get %NMONTH1 to be set to 31!

Using this method we can say that if the current day of the month is less than 3, then we need to use the above to find out the number of days in the previous month. So, we can then add the current day of the month which for this example is the 2nd of June, to the 31 days in May, 31+2=33 Taking 2 from this gives us 31! Sorted! Other than that we now need the month to show as '5' rather than the current '6'.

We know that if the day of the month is less than 3, we are going to be using a date from the previous month - so that is the IF statement we use. IF the day of the month %NDATE1 is less than 3, then we know we need to -1 from the month number %NDATE2. Sorted!

I explained that in as much detail as I could for you. I hope it made sense. Once we've done the above maths we 'variable join' the date together in the same format as the clockmod backup folder.

The next problem we have is that the backup, although triggered by a time context of 5am, can actually be delayed. I've had a backup named scheduledbackup-2011-06-02-05.00.07/. Unfortunately, pattern matching is not yet available in Tasker to use on file names, otherwise using the wildcard of '*' to delete the file scheduledbackup-2011-06-02-05.00.0*/ would have been a simple option.

Remembering that the date format %NDATE of the backup is needed to reference the file, we also cannot simply use locale execute to delete the file scheduledbackup-%NDATE-05.00.0*/. Tasker doesn't pass variables to it in that way.

The solution is to ask locale execute to delete files that are listed in a .txt file on the storage card. This way, we can tell Tasker to write scheduledbackup-%NDATE-05.00.0*/ to a text file beforehand. That's not strictly true though, as stated above, pattern matching of '*' is not available (yet) in file names.. so as a workaround for now, we write scheduledbackup-%NDATE-05.00.01/, scheduledbackup-%NDATE-05.00.02/, scheduledbackup-%NDATE-05.00.03/ etc to the text file to make sure all options are covered.

For your reference, locale execute plugin uses the command:
Code:
@! xargs rm -rf < /mnt/sdcard/nandroiddel.txt
The '@!' stops the command from being flashed up on the screen. The remainder of the command tells locale to delete the files listed in the file nandroiddel.txt.

I think that's about it!? A nandroid backup whilst you sleep, with the backup files managed...

Sorted?[/CODE]

V4 - (Very Easy)

Forces closes on the latest release, when trying to use the ROM manager intents have meant another way was needed to get Tasker to manage this. BIG thanks to waydownsouth who cracked it in style.

The first profile will check the version number you are running before writing a file to the cache/recovery folder, which will trigger the automatic backup when booting into recovery.

The file management is done in the same way as version 3.

Version 2 used a long-winded work-around to manage the backup files. But thanks to those mentioned in the credits below, there is a much, much more simple way using Locale Execute Plugin and a Linux command:

Code:
find /mnt/sdcard/clockworkmod/backup -mtime +1 -exec rm -rf {} \;

The '+1' in the above command denotes how many days prior to today the backups will be deleted. It's up to you to alter this number depending on how many backups you wish to keep and how often you make them.

The days and time are configurable within the profiles.

Any questions, let me know!

Credits
waydownsouth for sharing the auto-backup work-around and help with syntax
heywtf for the discovery of the auto-backup intent
UncleMike for his genius 'pseudo-array'.
crachel the Tasker guru for letting me hijack his thread and agreeing to answer all of your questions ;)

As always, the thanks button is the only way I know I should keep posting this stuff :eek: And please don't forget the users above too!

Note: You will need to grant SuperUser permissions for each command prior to the profile running correctly. I would suggest you add a STOP action above the final 'execute reboot' command, then keep pressing 'test' until SuperUser has stopped requesting permissions - remove the STOP action and the task will run automatically thereafter.

IMPORTANT NOTE: After importing the profiles ensure you 'apply' out of Tasker so they are saved. If you run the profiles without doing this, the profiles will not be there after the reboot! Please always backup your Tasker profiles initially too. Thanks to waydownsouth for pointing this out!
 
Last edited:

heywtf

Senior Member
Sep 4, 2010
64
29
If we have to use Locale in some form anyway then the original command from a few days ago does all this in one fell swoop doesn't it?
 

brandall

Senior Member
May 16, 2008
2,679
5,221
Birmingham
Execute, find /sdcard/blahblahblah rm -r blah

If we have to use Locale in some form anyway then the original command from a few days ago does all this in one fell swoop doesn't it?

I must admit, I didn't investigate that command further as I wasn't sure how it would populate the {}
Code:
find /path/to/the/files -mtime +7 -exec rm {} \;

"The command that does the deleting is 'rm' and the curly brackets are replaced with the path of each file that is found by find".
It made it sound like it wasn't automatic?!

If you have it up and running and it works well, please do share the full string and then it can replace the need for the text file etc as you say :)
 

heywtf

Senior Member
Sep 4, 2010
64
29
Code:
find /sdcard/clockworkmod/backup -mtime +3 -exec rm -r {} \;

To my knowledge {} just means "whatever was found". It's been working fine for me over the past week. I thought you were just trying to find a way to make Tasker do the same thing but without using an external plugin.
 
  • Like
Reactions: brandall

brandall

Senior Member
May 16, 2008
2,679
5,221
Birmingham
Code:
find /sdcard/clockworkmod/backup -mtime +3 -exec rm -r {} \;

To my knowledge {} just means "whatever was found". It's been working fine for me over the past week. I thought you were just trying to find a way to make Tasker do the same thing but without using an external plugin.

Originally I was! But then I clearly forgot about that and made things very over complicated... Oops!

What's a few hours of my life down the toilet...? I'll test the command out. Thanks again.
 

brandall

Senior Member
May 16, 2008
2,679
5,221
Birmingham
Code:
find /sdcard/clockworkmod/backup -mtime +3 -exec rm -r {} \;

To my knowledge {} just means "whatever was found". It's been working fine for me over the past week. I thought you were just trying to find a way to make Tasker do the same thing but without using an external plugin.

When you execute this, does the folder scheduledbackup-2011-06-XXXXXX/ still remain, but with the contents deleted?

Any idea how to get rid of the backup folder too?
 

sarshadd

Senior Member
Dec 29, 2010
203
13
I'm using widget locker, but im trying to disable the default PIN lock every two hours. I have previously been using "Delayed Lock" but why waste the memory if I can get tasker to do the same thing. I followed this tutorial and tried a few different variations but it never works.

-click New and select Event
-select Display and then Display Unlocked
-keep Priority at Normal and click Done
-click + in the bottom left to add an action
-select Display and then Keyguard
-keep the setting at Off, click Done
-click + again
-select Tasker and Wait Until
-set Seconds to 30 (this is the interval, Tasker checks for the condition set in next step)
-further down in the Until field enter %SCREEN into the left field (or use the Label-button in the top right, you have to scroll up to reach it) click the ~ button and select Matches and in the right field enter off
-click Done
-now add another action: click +, select Tasker and Wait (not Wait Until this time!)
set it to 2 minutes (or however long it should take to re-enable Keyguard) click Done
-finally add another step: click +, select Display, then Keyguard change the setting to On, click Done
-to add the "magic", so that Keyguard stays off if you use your phone again within the time limit, open the Task Properties by clicking on the Screwdriver/Wrench-button in the bottom right (left of the help button) at Collision Handling select Abort Existing Task
-click Done
-click Done
-click Apply

Now when you unlock your phone, the task will run and will turn Keyguard off. Then it will check every 30 seconds whether the screen is turned off. If it is, it will wait 2 minutes and finally turn keyguard on again. If you unlock your phone in these 2 minutes, the currently running task will be cancelled and a new one will be started.

Any help and/or suggestions please? Thanks,


Edit: Nvm, I figured it out...
1. display unlocked> keyguard> set off
2. Notify (title: Keyguard unlocked) if %keyg ~ off
3. wait 2 hrs
4 keyguard set on
5. notify cancel (title: keyguard unlocked)

task properties; Collision Handling: abort new task
(this way the phone re-locks itself 2 hours from the initial unlocking.)

unless anyone can think of a better way to do it...?
 
Last edited:

svscott26

Member
Jan 21, 2011
20
1
I am running 1.0.9 Tasker on my 2.2 Froyo Droid X and I don't think I am able to kill apps? Am I missing something? What I am trying to do is make Tasker kill the app Vlingo after I disconnect from my car charger. The main reason being is that Vlingo will not end itself after I close the app and reboots my phone.
 

heywtf

Senior Member
Sep 4, 2010
64
29
I am running 1.0.9 Tasker on my 2.2 Froyo Droid X and I don't think I am able to kill apps? Am I missing something? What I am trying to do is make Tasker kill the app Vlingo after I disconnect from my car charger. The main reason being is that Vlingo will not end itself after I close the app and reboots my phone.

Update to the latest version, 1.0.9 is from ages ago.
 

eliteforce

Senior Member
Jan 4, 2011
225
22
Krasnodar
i have problem with tasker
i created profile when i use app navitel - tasker should activate gps
but nothing happens
before at android 2.1 all worked fine profiles rolled up from backups
 

Top Liked Posts

  • There are no posts matching your filters.
  • 17
    Tasker - Scheduled Nandroid Backup with File Management [V4]

    Profile Aim

    DUE TO CHANGES IN ROM MANAGER THIS IS CURRENTLY NOT WORKING! :mad:

    Working on a fix....


    To take a nandroid backup whilst you sleep and manage the backup files so no more than two are stored.

    Downloads

    ROM Manager Free from the market
    Locale Execute Plugin Free from the market
    Icons used are Glossy Silver HD free from 'Download more icons' prompt in Tasker

    Profile Explanantion

    V2 - [Dropped] (But good for educational purposes)
    Code:
    There are only a few actions to explain in more detail:
    
    The task [B]NandroidFiles[/B] deletes the Nandroid backups from two days before. I set this as two days so not to use too much storage space and to make sure there was a spare backup in case the daily backup task failed for any reason.
    
    The back up folder is found in [I]sdcard/clockworkmod/backup/[/I] and automatically named [I]scheduledbackup-2011-06-02-05.00.00/[/I]
    
    The '2011-06-02' is initially a problem as this is almost the opposite of Tasker's inbuilt [B]%DATE[/B] variable formatted as '6-2-11'. We need to use Tasker's [B]%DATE[/B] minus two days to match it to the dated backup file we want to delete.
    
    Following the task through, you'll see that we transfer [B]%DATE[/B] to the created variable [B][B]%NDATE[/B][/B] before 'variable splitting' it by the '-' to leave 6 2 and 11 in [B]%NDATE1[/B], [B]%NDATE2[/B] and [B]%NDATE3[/B] respectively.
    
    So, it's the 2nd of June for the sake of this example and using basic maths would mean that two days before this would be the 2-2 of June = 0th of June!? That's obviously no good to us... It should be the 31st May, so how do we easily do that...?!!? :eek: 
    
    The answer is to use a 'pseudo-array' from [URL="http://groups.google.com/group/tasker/browse_thread/thread/1e1c531b900312e9#"]this thread[/URL] with credit to the brains of [URL="http://androidforums.com/members/unclemike.html"]UncleMike [/URL]. Now don't take a look at the below and give up reading, because it's actually a very simple and useful process. Honest(!): 
    
    If we are in the 6th month of the year which is June and our -2 days are taking us back to the number of days in May, then we need to quickly reference the 6th month to the 31 days of May. Have a look below and you'll see that between the brackets of (6) is the number 31.
    [CODE]x(1)31(1)(2)31(2)(3)28(3)(4)31(4)(5)30(5)(6)31(6)(7)30(7)(8)31(8)(9)31(9)(10)30(10)(11)31(11)(12)30(12)x
    We set the above to a created variable of %NMONTH and using a very simple variable split of the current month number of 6, which in the previous split was set to %NDATE1 we get %NMONTH1 to be set to 31!

    Using this method we can say that if the current day of the month is less than 3, then we need to use the above to find out the number of days in the previous month. So, we can then add the current day of the month which for this example is the 2nd of June, to the 31 days in May, 31+2=33 Taking 2 from this gives us 31! Sorted! Other than that we now need the month to show as '5' rather than the current '6'.

    We know that if the day of the month is less than 3, we are going to be using a date from the previous month - so that is the IF statement we use. IF the day of the month %NDATE1 is less than 3, then we know we need to -1 from the month number %NDATE2. Sorted!

    I explained that in as much detail as I could for you. I hope it made sense. Once we've done the above maths we 'variable join' the date together in the same format as the clockmod backup folder.

    The next problem we have is that the backup, although triggered by a time context of 5am, can actually be delayed. I've had a backup named scheduledbackup-2011-06-02-05.00.07/. Unfortunately, pattern matching is not yet available in Tasker to use on file names, otherwise using the wildcard of '*' to delete the file scheduledbackup-2011-06-02-05.00.0*/ would have been a simple option.

    Remembering that the date format %NDATE of the backup is needed to reference the file, we also cannot simply use locale execute to delete the file scheduledbackup-%NDATE-05.00.0*/. Tasker doesn't pass variables to it in that way.

    The solution is to ask locale execute to delete files that are listed in a .txt file on the storage card. This way, we can tell Tasker to write scheduledbackup-%NDATE-05.00.0*/ to a text file beforehand. That's not strictly true though, as stated above, pattern matching of '*' is not available (yet) in file names.. so as a workaround for now, we write scheduledbackup-%NDATE-05.00.01/, scheduledbackup-%NDATE-05.00.02/, scheduledbackup-%NDATE-05.00.03/ etc to the text file to make sure all options are covered.

    For your reference, locale execute plugin uses the command:
    Code:
    @! xargs rm -rf < /mnt/sdcard/nandroiddel.txt
    The '@!' stops the command from being flashed up on the screen. The remainder of the command tells locale to delete the files listed in the file nandroiddel.txt.

    I think that's about it!? A nandroid backup whilst you sleep, with the backup files managed...

    Sorted?[/CODE]

    V4 - (Very Easy)

    Forces closes on the latest release, when trying to use the ROM manager intents have meant another way was needed to get Tasker to manage this. BIG thanks to waydownsouth who cracked it in style.

    The first profile will check the version number you are running before writing a file to the cache/recovery folder, which will trigger the automatic backup when booting into recovery.

    The file management is done in the same way as version 3.

    Version 2 used a long-winded work-around to manage the backup files. But thanks to those mentioned in the credits below, there is a much, much more simple way using Locale Execute Plugin and a Linux command:

    Code:
    find /mnt/sdcard/clockworkmod/backup -mtime +1 -exec rm -rf {} \;

    The '+1' in the above command denotes how many days prior to today the backups will be deleted. It's up to you to alter this number depending on how many backups you wish to keep and how often you make them.

    The days and time are configurable within the profiles.

    Any questions, let me know!

    Credits
    waydownsouth for sharing the auto-backup work-around and help with syntax
    heywtf for the discovery of the auto-backup intent
    UncleMike for his genius 'pseudo-array'.
    crachel the Tasker guru for letting me hijack his thread and agreeing to answer all of your questions ;)

    As always, the thanks button is the only way I know I should keep posting this stuff :eek: And please don't forget the users above too!

    Note: You will need to grant SuperUser permissions for each command prior to the profile running correctly. I would suggest you add a STOP action above the final 'execute reboot' command, then keep pressing 'test' until SuperUser has stopped requesting permissions - remove the STOP action and the task will run automatically thereafter.

    IMPORTANT NOTE: After importing the profiles ensure you 'apply' out of Tasker so they are saved. If you run the profiles without doing this, the profiles will not be there after the reboot! Please always backup your Tasker profiles initially too. Thanks to waydownsouth for pointing this out!
    8
    Here's the script I came up with to do nandroid backups. Perks of using my script rather than brandall's profiles (god bless his soul and peace be upon him):
    • Tasker profiles are SUPER easy to set up - single action of executing the script, and the profile intent is less obfuscated
    • ROM and kernel information appended to backup

    I'm using CWM4 (and apparently it's not officially supported on my phone, ROM Manager thinks I don't have a recovery), so the line that concerns getting the user's version of CWM doesn't make a lick of difference to me - I could use someone to look over my script and test it out for me; seems to work on sample files I've gotten though.

    Credits are to brandall, heywtf, waydownsouth, et al. Thanks for making this work possible!

    Code:
    #!/system/bin/sh
    
    # nandroid.sh
    # Written by: strictlyrude27
    #             strictlyrude27@gmail.com
    # Date: 22 July 2011
    #
    # This script reboots your device into recovery mode and performs a Nandroid
    # backup - the name of the backup is [date-time_rom_kernel]. This requires super-
    # user permissions to run. Execute it in shell or via Locale Execute Plugin
    # (either via Tasker or Locale).
    #
    # Acknowledgements:
    #     brandall (http://goo.gl/ejhov)
    #         - for developing the original Tasker Nandroid profile scheme
    #           (original scheme at http://goo.gl/s9mp9)
    #     heywtf, waydownsouth, et al
    #         - "If I have seen a little further, it is by standing on the shoulders
    #            of giants." --Isaac Newton
    #
    # CHANGELOG
    #     8/7  - cleaning up the script nicely thanks to waydownsouth's input! 
    #     7/22 - initial release
    
    settingsfile=/sdcard/clockworkmod/.settings
    cmdfile=/cache/recovery/extendedcommand
    last_log=/cache/recovery/last_log
    
    # Build time/date, ROM, kernel information
    thetime=`date +%F-%I.%M.%S%P`
    kernel=`uname -r`
    
    rom=`getprop ro.modversion | sed 's/CyanogenMod/CM/'`
    
    # test for last_log first...
    if [ -e $last_log ]; then
        cwm=`sed -n 's/.*ClockworkMod Recovery v\([0-9]\).*/\1/p' $last_log`
    elif [ -e $settingsfile ]; then
        cwm=`sed 's/.*recovery_version":"\([0-9]\).*/\1/' $settingsfile`
    fi
    
    cwm=${cwm:-3}
    
    if [ "$cwm" -le 2 ]; then
        cat > $cmdfile<<EOF
    print "Tasker Nandroid Backup: ${thetime} ${rom} ${kernel}"
    backup_rom /sdcard/clockworkmod/backup/${thetime}_${rom}_${kernel}
    EOF
    
    elif [ "$cwm" -ge 3 ]; then
    # CWM3+ syntax
        cat > $cmdfile<<EOF
    ui_print("Tasker Nandroid Backup: ${thetime} ${rom} ${kernel}");
    backup_rom("/sdcard/clockworkmod/backup/${thetime}_${rom}_${kernel}");
    EOF
    fi
    
    reboot recovery
    7
    can you please explain how you did this? I'm guessing you used secure settings for failed login attempts right?
    how did you make tasker to send the taken picture via email? please share your setup ;)
    thanks

    Thanks toody for your reminder, I lost track of tasker thread for awhile. Some friends of mine think this setting is useless; gladly there are some guys like my stuffs :eek:

    Here go the profile/ task setting:

    You need to install Secure Settings from Google Play, once open it, slide to tab "Helper" and install Secure Setting Helper from there (this is activate all functions of Secure Settings included Failed Login Attempts"

    Install SL4A from Google Play, open it -> click on menu -> Add -> Python 2.6.2 and install it (this will be used to send your email)

    Set pattern lock for your phone

    Set Profile:
    Add new profile -> name it watever you want -> State -> Plugin -> Secure Settings -> Configuration: Edit -> Failed Login Attempts -> type number of attempts you want (remember to tick Device admin Enabled) -> Save -> Done

    Set Tasks:
    New Task -> name it yourself
    Click + -> Net -> Mobi data -> On
    Click + -> Net -> Wifi -> On
    Click + -> Task -> Wait -> 2 seconds
    Click + -> Media -> Take Photo -> Camera: Front -> Filename: %PHOTONUMBER
    Click + -> Variable -> Variable set -> Name: %PHOTONUMBER ->To: 1
    Click + -> Variable -> Variable add -> Name: %PHOTONUMBER -> Value: 1
    Click + -> Variable -> Variable set -> Name: %EMAIL_USER -> To: your Gmail address (only Gmail support so far)
    Click + -> Variable -> Variable set -> Name: %EMAIL_PSWD -> To: your Gmail password
    Click + -> Variable -> Variable set -> Name: %EMAIL_TO -> To: email address you want to send to
    Click + -> Variable -> Variable set -> Name: %EMAIL_ATTACH -> To: /sdcard/DCIM/Tasker/%PHOTONUMBER.jpg
    Click + -> Script -> Run SL4A Script -> Name: sendemailA.py -> Pass Variables: %EMAIL_USER,%EMAIL_PSWD,%EMAIL_TO,%EMAIL_ATTACH
    Click + -> Net -> Mobi data -> Off

    And it's good to go, you can add some more fancy actions like vibrate notification, or say out loud "intruder" or something :victory:

    I also have another to profile to delay screen lock if phone is used for 30 minutes, later than that it will resume as screen lock (pattern lock), Let's me know that you are interested
    5
    @Brandall,

    There is another method of firing a backup rather than the ROMmanager intent.

    when ClockworkMod boots, it looks to see if /cache/recovery/extendedcommand exists and executes it if found...

    all you need to do is create the extendedcommand file with the following contents

    Code:
    ui_print("Tasker Nandroid backup");
    backup_rom("/path/to/backup/folder");

    then via locale execute: reboot recovery

    been using this method for quite a while now.

    HTH :)
    4
    i have problem with tasker
    i created profile when i use app navitel - tasker should activate gps
    but nothing happens
    before at android 2.1 all worked fine profiles rolled up from backups

    In Gingerbread, Tasker can no longer toggle the GPS. This is not a problem however, as under menu/settings/location & security tick 'Use GPS satellites'.

    Even if this makes a widget show that GPS is 'on' - it isn't. Google will tell you that in Gingerbread, ticking this option means that GPS is ready to use when required and will use no additional resource.

    I've posted this same reply to many users who tick the box and then report back that indeed, it did use no battery power... :)

    So, you need to remove all of your GPS actions that you used in 2.1, as now when you start navigation or use a GET location action, GPS will automatically start and then stop after... Sorted!

    Hope that helped.